PHP-CGI のクエリストリング処理における脆弱性を悪用するエクスプロイトコード(Scan Tech Report) | ScanNetSecurity[国内最大級のサイバーセキュリティ専門ポータルサイト]
2017.12.13(水)

PHP-CGI のクエリストリング処理における脆弱性を悪用するエクスプロイトコード(Scan Tech Report)

脆弱性と脅威 エクスプロイト

1.概要
PHP コードを CGI として実行するインタプリンタ「PHP-CGI」のクエリストリング処理には、任意の引数を指定して PHP-CGI を実行できてしまう脆弱性が存在しました。リモートの第三者に悪用されると、任意の PHP コードのソースコードが漏えいしてしまう可能性、任意の PHP コードを実行される可能性がありました。
この脆弱性は 2012 年 5 月に修正されましたが、2013 年 10 月に、この脆弱性の悪用を容易にするエクスプロイトコードが公開されました。実際にこのエクスプロイトコードに基づく攻撃が確認されていることから、影響を受けるバージョンの PHP-CGI を導入している環境では、可能な限り以下に記載する対策を実施してください。


2.深刻度(CVSS)
7.5
http://nvd.nist.gov/cvss.cfm?name=&vector=(AV:N/AC:L/Au:N/C:P/I:P/A:P)&version=2
※この CVSS 値は、CVE-2012-1823 のものです。


3.影響を受けるソフトウェア ※
PHP 5.4.3 より前のバージョン 5.4 系の PHP
http://www.php.net/ChangeLog-5.php#5.4.3
PHP 5.3.13 より前のバージョン 5.3 系の PHP
http://www.php.net/ChangeLog-5.php#5.3.13


4.解説
PHP には、PHP コードを CGI として実行するインタプリンタ(言語処理系)「PHP-CGI」があります。2012 年 5 月、PHP-CGI において、任意に引数を指定して PHP-CGI を実行できてしまう脆弱性が公開されました(*1)。

この脆弱性を悪用すると、CGI として実行される PHP コードのクエリストリングに任意の PHP-CGI の引数を指定することで、それらの引数を指定してPHP-CGI を実行できてしまいました。このとき、PHP-CGI の引数に「-s」オプションを指定すると、PHP コードのソースコードが漏えいしてしまいます。
また、「-d allow_url_include=On」と「-d auto_prepend_file=php://input」を指定したうえで、POST メソッドで任意の PHP コードを送信すると、そのPHP コードを実行されてしまいます。この脆弱性は、公開されると数日で修正されました((*1)の [Disclosure timeline] によると、元々 CERT およびPHP 開発者と協調しながら脆弱性の修正を進めていたことが分かります)。

この脆弱性が公開された 2012 年 5 月頃のエクスプロイトコード(*2)、および確認された攻撃の痕跡(*3)によると、この脆弱性を悪用するためには「PHPコード(例:index.php)を指定する必要がある」と考えられていました。
しかし、2013 年 10 月に「PHP コードを指定せずに、『PHP-CGI』を直接指定して」この脆弱性を悪用するエクスプロイトコードが公開されました(*4)。

PHP 開発者は、URI で直接 PHP-CGI を指定しても、PHP-CGI が CGI として実行されないように、php.ini で cgi.force_redirect を有効にすることを推奨しています。この設定が有効になっていると、Web ブラウザなどで、PHP-CGI を直接実行させようとしても実行できません。しかし、このエクスプロイトコードでは、クエリストリングに「-d cgi.force_redirect=0」を含めることで、URI で直接 PHP-CGI を指定して、この脆弱性を悪用することを可能にしました。このエクスプロトコードによって、Web サイトで CGI として動作する PHP コード(例:index.php)が存在していなくても、PHP-CGI をインストールしているだけでも、この脆弱性を悪用されてしまうことが発覚しました。

このエクスプロトコードをもとにした攻撃が多数確認されているため(*5)、影響を受けるバージョンの PHP-CGI を導入している環境では、可能な限り以下に記載する対策を実施してください。

(*1): https://web.archive.org/web/20131101070143/http://eindbazen.net/2012/05/php-cgi-advisory-cve-2012-1823/
(*2): http://blog.tokumaru.org/2012/05/php-cgi-remote-scripting-cve-2012-1823.html
(*3): http://blog.sucuri.net/2012/05/php-cgi-vulnerability-exploited-in-the-wild.html
(*4): http://www.exploit-db.com/exploits/29290/
(*5): http://blog.tokumaru.org/2013/11/apache-magica-attack.html
http://www.morihi-soc.net/?p=114
http://d.hatena.ne.jp/ozuma/20131103/1383413495
http://neoredribbon.blog5.fc2.com/blog-entry-275.html


5.対策
以下の Web サイトを参考に PHP 5.4.3/5.3.13 以降を入手しアップデートすることで、この脆弱性を解消することが可能です。

PHP: Downloads
http://us1.php.net/downloads.php

また、Linux ディストリビューションにおいては、それぞれのディストリビューションに関連する情報を確認してください。

・Red Hat(Fedora)
Red Hat Bugzilla Bug 818907
https://bugzilla.redhat.com/show_bug.cgi?id=818907

・Ubuntu
CVE-2012-2311
http://people.canonical.com/~ubuntu-security/cve/2012/CVE-2012-2311.html

・Debian
CVE-2012-2311
http://security-tracker.debian.org/tracker/CVE-2012-2311

・Gentoo
Gentoo Linux Documentation -- PHP: Multiple vulnerabilities
http://www.gentoo.org/security/en/glsa/glsa-201209-03.xml


6.ソースコード
(Web非公開)

(執筆:株式会社ラック サイバー脅威分析センター

※Web非公開該当コンテンツ閲覧をご希望の方はScan Tech Reportにご登録(有料)下さい。

Scan Tech Report
http://scan.netsecurity.ne.jp/archives/51916302.html
《吉澤 亨史》

関連記事

Scan PREMIUM 会員限定記事

もっと見る

Scan PREMIUM 会員限定記事特集をもっと見る

Scan BASIC 会員限定記事

もっと見る

Scan BASIC 会員限定記事特集をもっと見る

[Web小説] サイバー探偵 工藤伸治の事件簿サーガ (シーズン 1~6 第1話)

もっと見る

[Web小説] サイバー探偵 工藤伸治の事件簿サーガ (シーズン 1~6 第1話)特集をもっと見る

カテゴリ別新着記事

脆弱性と脅威 カテゴリの人気記事 MONTHLY ランキング

  1. OSSのデータ収集ツール「Fluentd」に任意コマンド実行などの脆弱性(JVN)

    OSSのデータ収集ツール「Fluentd」に任意コマンド実行などの脆弱性(JVN)

  2. 送信者を偽装できる脆弱性「Mailsploit」に注意、メールソフト別対応状況一覧(JPCERT/CC)

    送信者を偽装できる脆弱性「Mailsploit」に注意、メールソフト別対応状況一覧(JPCERT/CC)

  3. GNU wget に HTTP プロトコルのハンドリングにおける値検証不備に起因するバッファオーバーフローの脆弱性(Scan Tech Report)

    GNU wget に HTTP プロトコルのハンドリングにおける値検証不備に起因するバッファオーバーフローの脆弱性(Scan Tech Report)

  4. 「Microsoft Office 数式エディタ」に任意コード実行の脆弱性(JVN)

  5. 8以降のWindowsに、特定のメモリアドレスのコードを悪用される脆弱性(JVN)

  6. Microsoft .NET Framework における WSDL パーサでの値検証不備により遠隔から任意のコードが実行可能となる脆弱性(Scan Tech Report)

  7. AIや機械学習による自動化がさまざまなサイバー攻撃に活用、2018年予想(フォーティネット)

  8. パケット解析ツール「Packetbeat」にDoS攻撃を受ける脆弱性(JVN)

  9. 脆弱性体験学習ツール「AppGoat」の集合教育向け手引書と解説資料を公開(IPA)

  10. Microsoft Office の数式エディタにおけるバッファオーバーフローの脆弱性(Scan Tech Report)

全カテゴリランキング

特集

★★Scan PREMIUM 会員限定コンテンツにフルアクセスが可能となります★★
<b>★★Scan PREMIUM 会員限定コンテンツにフルアクセスが可能となります★★</b>

経営課題としてサイバーセキュリティに取り組む情報システム部門や、研究・開発・経営企画に携わる方へ向けた、創刊19年のセキュリティ情報サービス Scan PREMIUM を、貴社の事業リスク低減のためにご活用ください。

×