
CVE-2012-1823 - PHP CGI 引数インジェクションによるリモートコード実行 (RCE)
重大度: 重大 (CVSS 9.8)
CVE: CVE-2012-1823
公開日: 2012年5月11日
影響を受けるソフトウェア: CGI モード (php-cgi) で実行されている PHP
脆弱性タイプ: 引数インジェクション / リモートコード実行 (RCE)
攻撃ベクトル: ネットワーク
必要な認証: なし
CVE-2012-1823 は、PHP でこれまでに発見された中で最も重要なリモートコード実行脆弱性の 1 つです。この脆弱性は、Common Gateway Interface (CGI) を通じて実行するように設定された PHP インストールに影響を与え、認証されていない攻撃者がリモートから任意の PHP コードを実行することを可能にします。
Web アプリケーション内部の欠陥を必要とする脆弱性とは異なり、この問題は php-cgi を使用してデプロイされた PHP 自体に存在します。脆弱性がインタプリタレベルに存在するため、影響を受けるサーバー上でホストされているすべての PHP アプリケーションが脆弱になり、アプリケーションにコーディング上の欠陥があるかどうかは関係ありません。
この脆弱性は、その単純さ、信頼性、そしてインターネット全体での広範な悪用により、2012 年に広く知られるようになりました。開示から何年経っても、インターネット全体のスキャンは脆弱なシステムを特定し続けており、この脆弱性は悪用フレームワークや防御検知ツールに含まれ続けています。:contentReference[oaicite:0]{index=0}
脆弱性は PHP の CGI 実装 (php-cgi) 内に存在します。
通常、HTTP クエリパラメータはユーザー入力として PHP スクリプトに渡されることを意図しています。
しかし、PHP は特別に細工された、等号 (=) を含まないクエリ文字列を誤って処理します。
クエリ文字列を純粋にユーザーデータとして扱う代わりに、PHP はその一部を PHP 実行可能ファイルに直接渡される コマンドライン引数 として誤って解釈します。
PHP は多数のコマンドラインスイッチ (例えば -d) をサポートしているため、攻撃者はリクエスト処理中に PHP のランタイム設定オプションを上書きできます。
これにより、攻撃者は以下を行うことが可能になります:
根本原因は、php_getopt() の不適切な処理にあります。内部:
sapi/cgi/cgi_main.c
具体的には、PHP は等号 (=) がない悪意のあるクエリ文字列を処理する際に、コマンドライン解析を正しく無視できませんでした。:contentReference[oaicite:1]{index=1}
CGI 実行可能ファイルはコマンドラインパラメータを受け付けます。
例えば:
php-cgi -d allow_url_include=1
通常、これらのパラメータはオペレーティングシステムからのみ発信されるべきです。
しかし、PHP は HTTP リクエストが特別に細工された URL を通じてこれらのパラメータを注入することを誤って許可しました。
したがって、攻撃者は対象のスクリプトが実行される前に PHP のランタイム設定を操作できました。
これにより、単純な HTTP リクエストが実質的に php-cgi に対するコマンドライン実行に変換されました。
以下の PHP リリースが影響を受けます:
| バージョン | 状態 |
|---|---|
| PHP < 5.3.12 | 脆弱 |
| PHP 5.4.x < 5.4.2 | 脆弱 |
影響を受けるのは CGI モード (php-cgi) を使用しているインストールのみです。
PHP が以下のように実行されている場合:
は一般的に CVE-2012-1823 自体の影響を受けません。:contentReference[oaicite:2]{index=2}
攻撃者に必要なもの:
この脆弱性は完全にリモートで悪用可能です。
攻撃は通常、以下の段階を踏みます:
コード実行が達成されると、攻撃者は一般的に以下を行います:
悪用が成功すると、PHP アプリケーションが完全に侵害されます。
潜在的な結果には以下が含まれます:
PHP が昇格された権限で実行されている場合、システムレベルの侵害も可能性があります。
| メトリック | 値 |
|---|---|
| 基本スコア | 9.8 |
| 重大度 | 重大 |
| 攻撃ベクトル | ネットワーク |
| 攻撃の複雑さ | 低 |
| 必要な権限 | なし |
| ユーザー操作 | なし |
| 機密性への影響 | 高 |
| 完全性への影響 | 高 |
| 可用性への影響 | 高 |
いくつかの特徴が CVE-2012-1823 を特に影響力のあるものにしました:
その悪用の容易さと深刻な影響の組み合わせにより、広範な実際の攻撃が発生し、CISA の Known Exploited Vulnerabilities (KEV) カタログに含まれることになりました。:contentReference[oaicite:4]{index=4}
管理者は以下を確認する必要があります:
指標には以下が含まれます:
Nuclei、Nessus、OpenVAS、Metasploit モジュールなどのセキュリティスキャナーは脆弱な設定を検出できます。:contentReference[oaicite:5]{index=5}
推奨される緩和策は以下の通りです:
| 日付 | イベント |
|---|---|
| 2012年5月 | 脆弱性が公開される |
| 2012年5月 | セキュリティパッチがリリース |
| 2012年 | 公開エクスプロイトがリリース |
| 2012年 | Metasploit モジュールが公開 |
| その後数年 | インターネット上での大規模な悪用が観測 |
| 現在 | 脆弱性スキャンやレガシーシステムに引き続き出現 |
このリポジトリは、教育目的、セキュリティ研究、脆弱性分析、防御テストのみ を目的としています。ここに含まれる情報は、明示的な許可を得たシステムでのみ使用する必要があります。脆弱なシステムの無断悪用は違法かつ非倫理的です。