Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2024-36401-geoserver-rce — CVE-2024-36401の再現可能な研究:JXPath evalインジェクションによるGeoServerの認証なしRCE。技術レポート、動作するエクスプロイト/検証ツール、および脆弱なインスタンスとパッチ適用済みインスタンスで欠陥を示すDocker環境が含まれます。 | Kitploit
ツール/GitHubGitHub/danielegiovanardi2408/cve-2024-36401-geoserver-rce
脆弱性分析エクスプロイトウェブアプリケーション悪用CTFペネトレーションテスト学習と教育
GitHubdanielegiovanardi2408/cve-2024-36401-geoserver-rce

cve-2024-36401-geoserver-rce

CVE-2024-36401の再現可能な研究:JXPath evalインジェクションによるGeoServerの認証なしRCE。技術レポート、動作するエクスプロイト/検証ツール、および脆弱なインスタンスとパッチ適用済みインスタンスで欠陥を示すDocker環境が含まれます。

リポジトリを見る
103ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2024-36401 — GeoServer における未認証 RCE

CVE CVSS CISA KEV Type License

CVE-2024-36401 は、地理空間データ向けに最も広く導入されているオープンソースサーバーである GeoServer における未認証のリモートコード実行(RCE)の脆弱性です。本リポジトリは、この脆弱性の完全かつ再現可能な調査資料です。このバグは eval インジェクション です。OGC 標準のパラメータを通じて、GeoServer は攻撃者が制御する プロパティ名 を GeoTools に渡します。GeoTools では Apache Commons JXPath がそれらを XPath 式として評価し、設計上、リフレクションを介して任意の Java メソッドを呼び出すことができます。したがって、exec(java.lang.Runtime.getRuntime(),'id') のような未認証リクエストは、ホスト上でコマンドを実行します。

このリポジトリには、技術レポート、動作するエクスプロイト/検証ツール、および脆弱なインスタンスで RCE を実証し、パッチ適用済みインスタンスでは同じエクスプロイトが失敗することを示すワンコマンドの Docker 環境が含まれています。

教育目的のプロジェクトです。 大学の講義(Data Privacy and Security、LUISS DASMA)のために作成されました。すべてはローカルの隔離されたコンテナに対してのみ実行されます — 責任ある利用 を参照してください。

概要

項目値
CVE (GeoServer)CVE-2024-36401
根本原因(GeoTools)CVE-2024-36404
種別未認証リモートコード実行
CWECWE-95、Eval インジェクション
CVSS v3.19.8 Critical (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
影響を受けるバージョンGeoServer < 2.25.2 / GeoTools < 31.2(およびそれ以前のブランチ)
CISA KEVあり(2024年7月15日)
調査対象バージョン脆弱な 2.25.1、パッチ適用済み 2.25.2

リポジトリ構成

root@kitploit:~
.
├── report/
│   ├── report.pdf            # the full technical report (read this first)
│   ├── report.md             # report source (Pandoc/XeLaTeX)
│   └── images/               # figures and screenshots
├── docker/
│   ├── vulnerable/Dockerfile # GeoServer 2.25.1 (vulnerable)
│   └── patched/Dockerfile    # GeoServer 2.25.2 (fixed)
├── docker-compose.yml        # vuln on :8080, patched on :8081
├── exploit/
│   ├── exploit.py            # exploit + vuln/patched verifier (stdlib only)
│   ├── exploit.sh            # curl-based PoC (GET + POST variants)
│   ├── payloads.md           # payload catalogue per OGC endpoint
│   └── output/               # captured proof logs and transcripts
└── run-reproduction.sh       # one command: build + exploit both + collect proofs

クイックスタート

必要なもの: 実行中の Docker Desktop、python3、curl。

root@kitploit:~
# Build both containers, run the exploit against each, and collect the proofs
chmod +x run-reproduction.sh
./run-reproduction.sh

またはステップバイステップ:

root@kitploit:~
docker compose up -d --build       # vuln on :8080, patched on :8081

# Vulnerable (expected: VULNERABLE, ~8s delay)
python3 exploit/exploit.py -t http://localhost:8080/geoserver --label vuln -o exploit/output

# Patched (expected: PATCHED, immediate rejection)
python3 exploit/exploit.py -t http://localhost:8081/geoserver --label patched -o exploit/output

docker compose down                # when finished

エクスプロイトの仕組み

2つの独立したプローブにより、結果を曖昧さなく判定できます:

  • ブラインド(時間ベース): java.lang.Thread.sleep(8000) が XPath を評価するスレッドをブロックするため、 HTTP レスポンスが約8秒遅延します。クライアント側から測定可能で、コンテナへの アクセスは不要です。公式の修正テストで使われているものと同じカナリアです。
  • ファイル(コマンド実行): exec(java.lang.Runtime.getRuntime(),'touch /tmp/<marker>') がコンテナ内にファイルを作成します。docker exec で確認できます。

脆弱なインスタンスでは、ペイロードを手動で送信すると ProcessImpl 上で ClassCastException が返ります。これは、JVM が Runtime.exec を実行し、結果の Process オブジェクトを属性として使用できなかったことを意味します。この例外こそが実行の証明です:

脆弱なインスタンスで exec ペイロード送信時に ClassCastException が返る WFS GetPropertyValue

修正内容

GeoTools のコミット e53e5170(GeoServer 2.25.2、2.24.4、2.23.6、2.22.6 に含まれる)は、このバグの両側面に対して多層防御を適用しています:

  • シンク: JXPathUtils.newSafeContext(...) ヘルパーが空の FunctionLibrary をインストールし、 JXPath が exec/Thread.sleep を関数として解決できなくなります。文字列は 通常のプロパティ名のままになります。
  • スコープ: FeaturePropertyAccessorFactory が SimpleFeatureType もチェックするようになり、シンプル フィーチャーが脆弱なアクセッサに到達しなくなります。

パッチ適用済みインスタンスでは、同じペイロードに対して No such attribute: ... が返り、何も実行されません。

詳細 — 影響を受けるコード(ファイル/行番号付き)、攻撃手法、緩和策の差分、および並べての再現手順 — は report/report.pdf に記載されています。

責任ある利用

この CVE は公開されており、18か月以上前にパッチが適用され、CISA の Known Exploited Vulnerabilities カタログに掲載され、公開 PoC(Vulhub、Nuclei、Metasploit)も存在します。ここにあるコードは、localhost のみ と、このリポジトリ内の隔離された調査用コンテナを対象としています。所有していないシステムや、明示的にテストを許可されていないシステムに対して使用しないでください。

ライセンス

MIT © 2026 Daniele Giovanardi

著作者

Daniele Giovanardi — LUISS Guido Carli 大学 Data Science and Management(DASMA)専攻。 Data Privacy and Security の講義課題として作成。

ツールをダウンロード