PHPは、認証なしのリモートコード実行(RCE)につながるおそれがある、PHP2Shellと名付けられた 2件の重大な脆弱性 に対するパッチを公開しました。
これらはCVE-2026-109618(メモリ不足(OOM)による破損)とCVE-2026-109619(古いグローバル状態)として追跡されており、CVSSスコアはいずれも9.2です。両方について、mod_phpを使用したApache上でのRCEが確認されています。
PHP Foundationは次のように述べています。「どちらの問題も、ほぼすべてのリクエストが通過するメモリ管理とエラー処理という部分に存在します。PHPの中核に位置することが、2件の脆弱性を深刻なものにし、修正を非常に難しくしました」
両脆弱性のパッチは、PHP 8.5.12、8.4.27、8.3.36、8.2.35に含まれています。PHP 7.4、PHP 8.0、PHP 8.1向けには、最小限のソースコード・バックポートも公開されました。
ところが、修正が公開される前から、この2件のセキュリティ欠陥を狙った概念実証(PoC)エクスプロイトが出回り始めていました。
先制型アタックサーフェス管理企業のWatchTowrによると、パッチが公開されたのとほぼ同時期に、同社のセンサーが初の実環境での攻撃試行を検知しました。ただし、成功した試行は確認されていません。
WatchTowrの脅威インテリジェンス責任者であるJake Knott氏は、「これまでのところ成功した者はいませんが、その状況が長く続くとは考えていません」と述べています。
このほか複数の企業が、パッチ公開前を含め、攻撃試行を確認したと報告しています。
Hadrianは、修正版の公開数時間前に次のように報告していました。「php2shellが大規模に実環境で悪用されていることを確認しました。観測した攻撃の大半はPHPのセッション・アップロード進捗パスを悪用しており、修正版の公開前後に、さらに多くの攻撃経路が現れると予想しています」
PatchstackとCloudflareも、同日の早い時間帯に攻撃試行を観測しました。Vegaは、公開PoCを利用した攻撃試行を実環境で確認しています。
PHPのメンテナーによると、Webリクエストを処理するすべてのPHPインストールが悪用の危険にさらされる可能性があり、その対象には「PHP-FPM、mod_by使用のApache、php-cgi、FrankenPHP、LiteSpeed」が含まれます。
パッチを適用できない場合、ユーザーは「特定の攻撃経路に対する露出を減らす」対策を実施できますが、PHP Foundationは「それでインストールが安全になるわけではない」としています。
PHP2Shellの2つの欠陥は、バージョン5.4まで遡るほぼすべてのPHPリリースに影響します。また、悪用すればプロセスメモリ内の機密情報を読み取ることもでき、認証情報やAPIキーなどのシークレットが漏えいするおそれがあります。
Malwarebytesで詐欺・AI調査を統括するShahak Shalev氏は、「これはハッカーにとって宝の山です。実在するWebサイトを乗っ取ってその評判を悪用し、フィッシングを行ったり、信頼されたチャネルからマルウェアを配布したりできます。悪用の可能性は無限です」と述べています。
最先端AIがPHP2Shellを発見
これらの脆弱性は、OpenAI、Califとともに、Wizが8月に発見しました。パッチが開発され、エコシステム全体に行き渡るまで、情報は非公開に保たれていました。
Wizは次のように指摘しています。「これらの発見は、PHPで見つかった脆弱性の中で最も深刻なものの一つであり、ソフトウェアの歴史全体で見ても屈指と言えます。根底にある欠陥は数十年前から存在していましたが、それが悪用可能であることを実証するには、人間の研究者が現実的に到達できる限界に迫るほど、極めて複雑な一連の手順が必要でした」
Califによると、PHPの最初のOOM欠陥は2020年に発見され、2024年のPHP監査で再び見つかりました。しかし、悪用が実証されなかったため、パッチは適用されませんでした。最先端のAIモデルのおかげで、このOOMの弱点をより深く分析でき、最終的にRCEへと発展させることができました。
OOMからRCEに至る問題は、8月11日にCalifとOpenAIがそれぞれ独立して報告しました。その後、OpenAIとWizが追加の攻撃ベクトルを報告しています。
PHP Foundationは、次のように説明しています。「Calif、OpenAI、Wizの報告により、OOM問題の影響の全容が明らかになりました。8月11日以降、この修正はセキュリティを担当するPHP Foundationのチーム全員にとって最優先事項となりました」
PHP2Shellの技術的な詳細解説を公開したWizによると、CVE-2026-109618とCVE-2026-109619はPHPにおける4件のメモリ安全性の問題をまとめたものですが、すべての亜種を網羅しているわけではありません。同社は、追跡されている亜種と、おそらく追跡されていない亜種の両方が存在するとしています。
このセキュリティ欠陥はPHP自体に存在するため、CMSの種類を問わず、世界のWebサイトの70%に影響します。
Wizは「PHPは、WordPressやDrupal、Wikipediaを動かすソフトウェアであるMediaWikiなど、Webの多くを支えるプログラミング言語です。中核エンジンの欠陥は、アプリケーション側のコードが安全であっても、このエコシステム全体のWebサイトに影響を及ぼす可能性があります」と述べています。
PHP Foundationによると、AIの活用によって、これまで以上に多くのPHPの脆弱性が見つかるようになりました。7月1日以降に公開された新たなCVEは15件に上ります。
早期の情報漏えいと早期警告
PHP2Shellの脆弱性は、10月22日に責任ある開示を行う予定でしたが、10月20日にオンラインで情報が漏えいしました。このためPHP Foundationは、パッチの公開を1日前倒しすることを決めました。
同財団はまた、重大なバグに早急な対応が必要であることを警告する事前告知も公開しました。複数のサイバーセキュリティ企業も同様の警告を発表し、脆弱性の悪用がすぐにも始まる可能性があると指摘しています。
開示スケジュールより前に、実際に動作するPoCを実演する動画が誤って公開されました。この動画は2つの弱点に関する追加の詳細を明らかにし、「さまざまなPoCの開発を加速させる一因となった」とされています。
PHP Foundationが重要インフラ組織に提供した緩和策のアドバイスも、漏えいした可能性があります。協調的リリースの6時間前に、Chainguardが事前に受け取っていた修正を含むビルド済みイメージを公開しました。
PHP Foundationは「これにより、他のすべてのPHPユーザーがリリースを待っている間に、攻撃者は修正をバイナリ形式で調べることができました。協調的な開示に向けて多くの関係者が数週間にわたって積み重ねてきた作業が、無視される結果となりました」としています。
協調的な取り組みの一環として、Cloudflareは、公開の9時間前にPHP2Shell脆弱性に対する保護機能を展開しました。
SimSpaceの共同創業者兼CTOであるLee Rossey氏は、次のように述べています。「今回のPHP緊急セキュリティアップデートは、深刻な脆弱性が公になった際、組織がいかに迅速な対応を迫られるかを示しています。パッチが公開される前に、チームはPHPがどこで稼働しているか、誰が緊急の変更を承認できるか、そして更新が機能したことをどう確認するかを把握しておくべきです。さらに、修正が適用される前に攻撃者がそれらのシステムに到達していないかも確認する必要があります」
翻訳元: https://www.securityweek.com/php2shell-patches-land-as-first-exploitation-attempts-hit-sensors/