Tenable ブログ
ブログ通知を受信するCVE-2019-11043: PHP-FPM における脆弱性により、nginx でリモートから任意のコードが実行される可能性あり

nginxとPHP-FPMを使用するWebサーバーは、特定の条件下でこの欠陥に対して脆弱です。
背景
10月22日、セキュリティ研究者のOmar Ganiev氏は、PHPのFastCGI Process Manager(FPM)であるPHP-FPMにおける「パッチが適用されたばかり」のリモートコード実行の脆弱性に関するツイートを公開しました。 このツイートには、脆弱性の概念実証(PoC)が公開されたGitHubリポジトリへのリンクが含まれています。
Freshly patched RCE in PHP-FPM:https://t.co/kaVsCStBJx
— BECHED (@ahack_ru) October 22, 2019
Exploit:https://t.co/VLmhxMWVxo
Many nginx+PHP configurations vulnerable, watch out!
分析
CVE-2019-11043はPHP-FPMのfpm_main.cにおけるenv_path_infoアンダーフローの欠陥で、2019年9月26日にセキュリティ研究者Emil Lerner氏によりPHPバグトラッカーに最初に報告されました。 Lernerは、2019年9月のCapture The Flagコンペティションで「異常」を発見したWallarmのセキュリティ研究者であるAndrew Danau氏とPoCのphp.iniオプションの最終決定を支援したGaniev氏の貢献を認めています。
Lerner氏によると、WebサーバーがnginxとPHP-FPMを使用している特定の構成では、この脆弱性が悪用され、リモートで任意のコードが実行される可能性があります。これらの構成を悪用するには、以下を含む特定の一連の前提条件が必要です。
- nginx locationディレクティブがリクエストをPHP-FPMに転送する
- fastcgi_split_path_infoディレクティブが存在し、「^」記号で始まり「$」記号で終わる正規表現が含まれる
- fastcgi_paramディレクティブが、PATH_INFO変数を割り当てるために使用される
- ファイルが存在するかどうかを判断するためのチェックがない(try_filesまたはifステートメントを使用するチェック)
このような構成と前提条件をもつシステムは珍しくなく、最近のツイートによると、オープンソースファイルホスティングソフトウェアであるNextcloudにより、以前、インストールドキュメントで脆弱なnginx構成を推奨されていたことが報告されています。このツイートで指摘されてからNextcloudは、ドキュメントを更新しています。
NOTICE THIS TWEET : https://t.co/x68iNP6F7u
— Henry Chen (@chybeta) October 24, 2019
recommended configuration for nextcloud with nginx and php-fpm is vulnerable...#bugbounty #bugbountytip #bugbountytips pic.twitter.com/cAqptRR0Ez
GitHubリポジトリに公開されたPoCは、特別に細工されたリクエストを送信することにより、ターゲットWebサーバーにクエリを実行し、脆弱かどうかを識別し、脆弱なターゲットが特定されると、
概念実証
この脆弱性を悪用するPoCスクリプトは、GitHubリポジトリに公開されています。
ソリューション
10月24日に、PHP 7.3.11(現在の安定版)とPHP 7.2.24(古い安定版)がリリースされました。これらのバージョンでは、この脆弱性が対処され、その他の予定されたバグ修正も含まれています。PHP-FPMでnginxを使用している場合は、早急にパッチを適用したバージョンにアップグレードすることをお勧めします。
パッチを適用できない場合は、try_filesディレクティブを含めるか、if (-f $uri)などのifステートメントを使用し、ファイルが存在するかどうかを確認するためのチェックを含めることをお勧めします。
影響を受けているシステムの特定
この脆弱性を識別するための Tenable のプラグインのリストは、リリースされた時点で こちら に表示されます。
詳細情報
- CVE-2019-11043に関するPHPバグトラッカーエントリ
- PHP-FPMの脆弱性の発見についてのWallarmのブログ
- GitHubリポジトリで公開されたCVE-2019-11043の概念実証
Tenable コミュニティの Tenable セキュリティレスポンスチームに参加してみませんか。
現代のアタックサーフェスを総合的に管理する Cyber Exposure Platform を初めて提供した Tenable について詳細情報をご覧ください。
今すぐ Tenable.io Vulnerability Management の60日間無料トライアルをお試しください。
関連記事
- 脆弱性管理