AIツールがレガシーWebインフラの重大なPHP2Shell脆弱性を発見
研究者はAIを用いて、軽微なPHPメモリバグを重大なリモートコード実行(RCE)欠陥へと変貌させ、主要サイトに対して緊急のパッチ適用を促しました。
英語の原文から自動翻訳されました。
2026年10月下旬、サイバーセキュリティ研究者らは「PHP2Shell」と呼ばれる脆弱性を公開しました。これはNASA、Wikipedia、ホワイトハウスなど、インターネットの広範な部分を影響する重大な欠陥です。この発見は、これまで無視されてきたメモリエラーを深刻なリモートコード実行リスクへと変換したAI支援分析によって可能になりました。PHP Foundationへの通知後、悪意ある攻撃者によるアクティブなエクスプロイトを防ぐため、迅速にパッチがリリースされました。
何が起きたのか
根本的な問題は、2024年にすでにPHP Foundationへ報告されていたバグに起因しています。このバグはアウト・オブ・メモリー(メモリ不足)エラーを引き起こし、通常はセキュリティ侵害ではなくプログラムのクラッシュをもたらすものでした。クラッシュはしばしば安定性の問題と見なされ、セキュリティ上の脅威とは捉えられなかったため、このバグは何年も放置されていました。レガシーコードのメンテナンスに必要な膨大な作業量のため、他の多数の低優先度レポートの中に埋もれ、注目を集めることはありませんでした。
状況が一変したのは、OpenAIのスポンサーシップを受けたサイバーセキュリティ企業CalifがPHPの独立監査を実施した際のことです。2週間以内に、AIツールを使用していた研究者が、このメモリ不足状態を悪用する方法を発見しました。サーバーを単にクラッシュさせるのではなく、このエクスプロイトにより攻撃者はホストシステム上で任意のコードを実行できるようになりました。これにより、無害なバグがマルウェアのインストールや機密データの窃取を可能にする重大な脆弱性へとエスカレーションしました。チームは即座にPHP Foundationへ警告を発し、緊急対応が始まりました。
開示後、4人のエンジニアからなるチームが包括的なパッチの開発に2か月を費やしました。緊急性は、WordPressやDrupalといった広く使用されているプラットフォームへの潜在的な影響によって駆動されました。修正版がリリースされる前に悪意ある攻撃者がこの脆弱性を悪用することはありませんでしたが、今回の事案は、人間のレビュアーが見落としまたは優先度を下げている可能性のある古いソフトウェアスタックにおける危険性を、AIがいかに迅速に発見できるかを示しました。
仕組み
PHP2Shell脆弱性の悪用には、サーバーメモリの精密な操作が必要でした。攻撃者は、特定のメモリ位置へジャンプするための正確な計算方法と、システム制御を奪取するためにどのビットをどのような順序で上書きすべきかを決定する必要がありました。このプロセスには複雑で具体的な推論が含まれており、人間にとっては煩雑かつエラーが発生しやすいものでした。コロンビア大学の准教授であるSuman Jana氏は、「ロケット科学ほど難解ではないものの、苦痛を伴う詳細な論理ステップが必要だ」と指摘しています。
AIツールは、この複雑な推論プロセスを処理することで研究者を支援しました。モデルはメモリレイアウトのマッピングを助け、リモートコード実行を実現するために必要な正確な操作シーケンスを特定しました。これはAIが単独で行動したという意味ではありません。研究者たちはサイバーセキュリティとPHPの両方において深い専門知識を持っていました。しかし、AIは発見プロセスを加速し、メモリ破損パスを追跡する際に発生する手作業の一部を専門家たちが回避できるようにしました。
パッチ作成のプロセスでも、新興のAI機能が活用されました。Jana氏によると、新しい形式検証ツールは現在、パッチを生成し、そのパッチが正しいことを証明する証跡まで作成できるようになっています。このワークフローでは、LLMがコード修正とその妥当性の数学的証明を生成し、別の形式チェッカーが証明を検証します。このアプローチは、バグ発見と修正の間の非対称性を軽減し、修復作業が新たなエラーを導入したり既存機能を破壊したりしないことを保証することを目的としています。
主要な詳細
- この脆弱性はNASA、Wikipedia、ホワイトハウスなどの主要サイトに加え、WordPressまたはDrupalを実行しているすべてのサイトに影響しました。
- 根本原因は2024年に報告されたアウト・オブ・メモリーバグであり、当初は低優先度のクラッシュ問題として扱われていました。
- OpenAIのスポンサーシップを受けたサイバーセキュリティ企業Califは、監査開始から2週間以内にAIツールを使用してエクスプロイトを発見しました。
- エクスプロイトによりリモートコード実行が可能となり、攻撃者は機密データの読み取りやホストサーバーへのマルウェアインストールを行えるようになりました。
- 4人のエンジニアからなるチームが、すべての攻撃ベクトルを閉じつつ機能性を壊さないよう、パッチの開発とテストに2か月を費やしました。
- LLMが修正コードと正しさの証明を生成するなど、形式検証ツールがパッチ作成プロセスに統合されています。
なぜ重要なのか
この事案は、レガシーシステムを維持管理する開発者にとっての脅威環境の変化を示唆しています。数十年間、PHPのような古い言語における技術的負債は、深いメモリバグの悪用に多大な人的労力が必要だったため、管理可能な状態でした。AIはその障壁を下げることで、熟練した研究者が脆弱性をより速く発見し、武器化することを可能にします。これは、古く放置されたコードベースがかつて経験したことのないレベルの精査にさらされることを意味し、些細な安定性問題が重大なセキュリティリスクへと変貌します。
ソフトウェアビルダーにとって、これは技術的負債に対処する緊急性を浮き彫りにします。特に資金が限られているオープンソースプロジェクトでは、攻撃と防御の非対称性が引き続き課題となります。防御側は、強力なAIアシスタントを利用できる敵対者と戦わなければなりません。この力学は、組織に対し、曖昧さが保護してくれると仮定するのではなく、より良いメンテナンス慣行への投資と、依存しているオープンソースインフラの支援を行うよう圧力をかけています。
さらに、攻撃および防御の両方におけるAIの役割は中心的なものになりつつあります。AIは脆弱性発見を加速しますが、形式手法を通じて修正を検証する新しい方法も提供します。ただし、これらのツールへの依存には慎重な監督が必要であり、モデルはハルシネーション(誤情報生成)を起こす可能性があるからです。業界は、自動エクスプロイトの新時代において遅延が壊滅的な結果を招く可能性があるため、開発ワークフローに形式検証を組み込み、セキュリティアップデートが即時に適用されるように適応する必要があります。
あなたができること
- WordPressやDrupalのインストールを含むすべてのPHPベースのシステムを、最新のパッチ適用済みバージョンへ直ちに更新してください。
- メモリエラーやクラッシュに関連する古いバグレポートの解決を優先してください。これらが悪用可能な脆弱性を隠している可能性があります。
- セキュリティパッチの検証を自動化するため、重要なコードパスに対する形式検証ツールへ投資してください。
- PHP Foundationやその他のオープンソースメンテナーからのセキュリティ助言を注意深く監視し、新たな開示情報を確認してください。
- レガシーコードベースの定期的なセキュリティ監査のための予算を確保してください。必要に応じてAI支援テストサービスを活用することも検討してください。
- 露出期間を最小限にするため、組織全体でセキュリティアップデートの即時インストールを奨励してください。



