PHPに緊急パッチと混乱の原因となった情報漏洩

PHPに緊急の脆弱性修正、サプライチェーン企業が情報漏洩に関与かのイメージ画像

2026年10月21日(水)、PHPのメンテナーは、2つの深刻な脆弱性「PHP2Shell」(CVE-2026-109618およびCVE-2026-109619)に対する緊急パッチを公開しました(The Register)。これらの脆弱性は、認証されていない攻撃者がPHPサーバー上で任意のコードを実行できるというもので、Webの大部分で利用されているPHPにとって非常に危険なものです。しかし、この緊急パッチの公開は、調整された情報開示プロセスが乱れる中で行われました。

PHPの脆弱性「PHP2Shell」の緊急パッチ公開は、情報漏洩により調整されたプロセスが混乱する中で行われました。

PHP開発者らは、サプライチェーンセキュリティ企業であるChainguardが、計画された公式開示に先立ち、パッチを含むビルド済みイメージを公開したことで、この情報漏洩を引き起こしたと非難しています(The Register)。

脆弱性の発見と情報漏洩の経緯

PHPに緊急の脆弱性修正、サプライチェーン企業が情報漏洩に関与かのイメージ画像

これらの脆弱性は、Calif、OpenAI、Wizの研究者によって2026年8月から9月の間に発見されました。これらの企業は、AIモデルを使用して脆弱性を見つけたと報告しています(The Register)。

情報漏洩の発端は、2026年10月20日(火)15:00 UTC頃に「2つのCVE IDがオンラインフォーラムやソーシャルメディアで出回り始めた」ことだと言われています。当初、技術的な詳細は含まれていませんでしたが、この噂によりPHPメンテナーは公開予定を1日前倒しせざるを得なくなりました。その後、Califが誤って概念実証(PoC)ビデオと限定的な情報を公開し、さらに事態を悪化させました。

時刻(UTC) 出来事 影響
2026年10月20日 15:00頃 2つのCVE IDがオンラインで流出 PHPメンテナーが公開を1日前倒しに決定
その数時間後 Califが誤ってPoCビデオと限定情報を公開 脆弱性の具体的な情報が拡散
2026年10月21日 07:41 Chainguardがパッチ適用済みイメージを公開 攻撃者がバイナリから修正内容を分析可能に

PHP Foundationのブログによると、Chainguardは2026年10月21日07:41 UTC、調整された公開の6時間以上前に、エンバーゴを一方的に破棄し、修正を含むビルド済みイメージを公開しました。これにより、他のPHPユーザーがリリースを待っている間に、攻撃者がバイナリ形式で修正内容を研究できるようになり、多大な労力が費やされた調整された開示プロセスが台無しになったとPHP側は主張しています(thephp.foundation)。

Chainguard側の見解とAI活用

ChainguardのCEOであるDan Lorenc氏は、タイムラインを否定しないものの、「リークはしていない」と主張しています(The Register)。同氏によると、Chainguardは金曜日に研究者の一人から「PHPで何かが起こる」という情報を得たとのことです。その日の夜、同社のAIハーネスと最先端モデルを使用して、CEOとチームは独自に同じメモリ破損脆弱性を発見しました。

Chainguardは「基本的なプロンプト『PHPの悪い脆弱性を見つけろ』」で独自に脆弱性を発見したと説明しています。

Lorenc氏は、彼らが「PHPの悪い脆弱性を見つけろ」という基本的なプロンプトを使っただけで脆弱性を発見できたと述べており、AIツールの脅威検出能力の高さを示唆しています。この点では、脆弱性の発見にAIが大きく貢献していることがわかります。AIが脆弱性発見の効率を向上させる一方で、その情報管理がさらに重要になることを示しているのではないでしょうか。

広がる攻撃と今後の対策

この脆弱性の情報が流出し始めてから、攻撃が活発化していることが確認されています。Cloudflareは、情報が公開されるまでの10時間で数千件、公開後45分で数万件、2時間で数十万件もの攻撃が観測されたと報告しています(The Register)。

AWSも、公開の4日前から脆弱性を狙った攻撃があったことを明らかにしています。このことから、情報漏洩がいかに迅速に悪用されるかがわかります。

PHPを利用しているエンジニアの方は、最新バージョンへの速やかなアップデートが最も重要です。Dockerユーザーは、公式のDockerイメージが既に更新されているため、最新版に再デプロイすることで対応できます(Docker Blog)。また、影響を受けるバージョンはPHP 5.4以降のすべてのバージョンであり、サポートが終了しているバージョンも含まれるため、これらの環境を利用している場合は特に注意が必要です(Docker Blog)。

エンジニア目線で見ると:サプライチェーンの信頼性と情報公開の難しさ

今回のPHP2Shellの件は、サプライチェーンセキュリティの難しさを改めて浮き彫りにしたと感じます。特に、オープンソースプロジェクトとセキュリティ企業、そしてAI研究チームといった複数の関係者が関わる中で、情報の適切な調整がいかに困難であるかを痛感します。Chainguardが自社で脆弱性を発見し、その情報を元に迅速にパッチ適用済みのイメージを公開したことは、彼らのサプライチェーンセキュリティに対する意識の高さの表れではあるものの、結果としてPHPメンテナーの調整計画を大きく狂わせてしまった点が問題だと考えます。

個人的には、GCPのCloud RunやCloud Buildを使っている場合、PHPのベースイメージの更新はDockerHubや他のレジストリからのプルに依存するため、今回のChainguardのような行動は、我々が利用するベースイメージの更新タイミングに直接影響すると感じます。Docker Blogでも今回の脆弱性に対する対応が報じられており、Dockerの公式イメージも迅速に更新されたようです(Docker Blog)。しかし、今回のケースでは「情報が公開される前にパッチ適用済みイメージが流出する」という形であり、攻撃者に修正内容を分析する時間を与えてしまったのは、極めて残念な事態ではないでしょうか。

自身の個人プロダクトでもPHPを使用しているものがあるので、今回の迅速なアップデートは必須だと感じています。特に、AIが脆弱性発見に活用されている現状を考えると、今後も同様の情報漏洩リスクは高まる可能性があり、サプライチェーン全体の信頼性に対するチェックがより一層重要になると感じます。