CVE-2020-14645 脆弱性エクスプロイト(PoC)

Security

概要

本リポジトリは、Oracle ADF Faces / WebLogic周辺の脆弱性に対するエクスプロイト(PoC)を収めたツールキットです。リポジトリ名は「CVE-2020-14645」となっていますが、READMEではRemoteApplicationResourceLoaderに関するCVE-2022-21445向けのエクスプロイト生成ツールであると説明されています。ツールは主にPythonで書かれた exploit.py を中核とし、Javaでペイロードを生成・コンパイルするための仕組み(JDK必須)と補助ライブラリを伴います。認証不要でのリモートコード実行(RCE)を達成するためのペイロード生成が目的ですが、実環境での使用はベンダーパッチ適用や監査の下で行うべきです。

GitHub

リポジトリの統計情報

  • スター数: 3
  • フォーク数: 0
  • ウォッチャー数: 3
  • コミット数: 6
  • ファイル数: 3
  • メインの言語: Python

主な特徴

  • PythonベースのPoCスクリプト(exploit.py)を中心とした構成
  • Javaでペイロードを生成・コンパイルするツールチェーン(JDKが必要)
  • RemoteApplicationResourceLoader系のJavaシリアライズ脆弱性を対象としたペイロード生成
  • 付属ライブラリ(libs)に必要な補助モジュールやjarを格納

技術的なポイント

本リポジトリの技術的な核は「シリアライズされたJavaオブジェクトを悪用して遠隔で任意コードを実行させる」という典型的なJavaデシリアライズ攻撃パターンにあります。READMEは特にRemoteApplicationResourceLoaderに関連するCVE-2022-21445を扱うと記載しており、脆弱なコンポーネントが作成するリソース参照の処理過程で、外部入力を不適切にデシリアライズしてしまうことを突く手法を示唆しています。ツールはPythonでHTTPリクエストを組み立て、サーバが解釈する箇所にシリアライズ済みの悪性オブジェクトを埋め込むためのペイロードを生成する流れを想定しています。Java側ではJDKを用いてペイロード用のクラスやシリアライズデータを生成・コンパイルし、必要に応じてガジェットチェーン(既存クラスを組み合わせて任意処理を達成する手法)を利用する設計です。

解析上の注目点としては、リポジトリ名とREADMEのCVE表記の不一致(CVE-2020-14645 vs CVE-2022-21445)があり、作者が複数脆弱性向けに同一の環境/ツールを流用している可能性がある点です。また、実行前提としてPython 3.6+とJDK 1.8(推奨8u202)を要求しているため、環境依存の挙動やコンパイル時のクラスパス設定、ターゲット環境のJavaバージョン差異が成功率や安定性に影響します。防御側としてはベンダーパッチ適用、脆弱なコンポーネントの無効化・隔離、WAFやアクセス制御による外部からの直接アクセス遮断、シリアライズ処理の見直しと入力検証の徹底が有効です。本リポジトリは研究・検証を目的とした参考実装であり、実運用環境での無断使用は法的・倫理的問題を生じます。

プロジェクトの構成

主要なファイルとディレクトリ:

  • README.md: file
  • exploit.py: file
  • libs: dir

まとめ

研究向けのPoC実装。実環境での利用は慎重に。

リポジトリ情報:

READMEの抜粋:

CVE-2022-21445 Exploit - PoC

This toolkit generates exploit payloads for CVE-2022-21445, a critical Java deserialization vulnerability in Oracle ADF Faces RemoteApplicationResourceLoader. The exploit achieves unauthenticated Remote Code Execution via a crafted GET request.

Prerequisites

RequirementVersionPurpose
Python3.6+Run the exploit script
JDK1.8 (8u202 recommended)Compile and run Java payload generator