クリーム色の背景に「AIがPHPの穴を見つけた。守る側はまだ夜中に人を起こすのか」というタイトルと、サーバーの横に立つ守衛ロボットの線画

AIがPHPの穴を見つけた。守る側はまだ夜中に人を起こすのか

AIがPHPの奥に長く眠っていた穴を掘り当てました。パッチ(修正プログラム)が出たのは、公開と同じ日です。穴が見つかる速さよりも、突かれたあとの最初の動きのほうが、私は気になりました。

長く眠っていたPHPの穴を、AIが掘り当てた

2026年10月21日、クラウドセキュリティ企業のWiz(ウィズ)が、PHPの中心部分にある重大な脆弱性(プログラムの弱点)を公表しました。PHPはWordPress(ブログやサイトを作る有名なソフト)などが動いているプログラミング言語で、Wizは「世界のWebサイトの70%で動いている」と説明しています。

見つかったのは、CVE(脆弱性に付く世界共通の管理番号)でいうとCVE-2026-109618とCVE-2026-109619の2件です。深刻度を0〜10で示すCVSS(共通脆弱性評価システム)は、最大で9.2でした。ログインしていない外部の人が、サーバーで好きなプログラムを動かせてしまう「認証不要のリモートコード実行(RCE)」も含まれます。PHP側は同じ21日に、修正版を出しています。

しかもWizによれば、問題のコードは10年以上前からそこにありました。穴を見つけて攻撃として成り立たせる作業があまりに複雑で、人間の研究者が現実にやれる限界に近かった、というのがWizの説明です。調査にはGemini 4 ArgonとGPT-5.6 Solを使ったそうです。従来なら世界トップクラスのチームで数か月かかる作業を、研究者1人が1週間で終えたとも書いています。

攻めと守りは、永遠のイタチごっこ

AIで得をするのは、攻撃側と防御側のどちらなのか。気になる問いですが、私の答えは「永遠のイタチごっこ」です。攻める側が穴を探せば、守る側も穴をふさぎます。これは昔から変わりません。

変わったのは、そのペースです。Wizの調査の経過を見ると、最初の脆弱性を見つけたのが8月19日、Drupal(サイト構築ソフト)で認証不要のRCEを確認したのが翌20日、WordPressで確認したのが21日でした。公開から5日後の10月26日には、CISA(米国サイバーセキュリティ・社会基盤安全保障庁)が、悪用が確認された脆弱性の一覧であるKEVカタログに、この2件を加えています。

CISAはすぐにパッチを当てるよう強く求めています。更新がすぐにできないなら、PHPで動くシステムをオフラインにするようにとも書いています。PHP 8.1以前のサポート対象外の版も同じ扱いです。守る側は公開されたその日から急いで動くことになります。

穴を見つけるのは速くなった。でも、突かれたあとは

Wizによると、Gemini 4 Argonは穴の発見や攻撃コードの開発だけでなく、攻撃の検知とパッチの検証でも役に立ったそうです。つまりAIは穴探しから攻め方、守り方の確認まで、もう幅広く使われています。

それでも、穴を突かれたあとの最初の動きは、まだ人間頼みの現場が多いと私は思っています。Wizは、この種の攻撃はアプリケーションより下の層で起きるため、アプリのログには手がかりがほとんど残らないことがあると書いています。怪しい兆候として挙げているのは、ファイルアップロード形式の不審なリクエストのあとに続くメモリ上限のエラーや、HTTPの500エラー(サーバー側の不具合を示す応答)の繰り返しなどです。CISAも、PHPの処理がシェル(コマンドを直接実行する画面)を起動していないか監視するよう求めています。

そこで気になります。1分でどれだけやられるかわからないのに、夜中に人を起こす電話を鳴らすのは、今までと同じでいいのでしょうか。起こされた人が薄い手がかりを読み始めるころには、すでに何分も経っているかもしれません。

やられる前提で、守衛を置く

パッチが出ても、すべてのサーバーにすぐ行き渡るわけではありません。CISAがわざわざ「更新できないならオフラインに」と書くのは、すぐには更新できないサーバーが残るからでしょう。

だから私は、やられる前提で守ると決めたほうがいいと思います。そして守る側にもAIの守衛をつけたいのです。怪しい動きを見張り、人を起こす前にまず止めて、そのうえで人間に知らせます。守衛の仕事は、それだけです。

穴を掘り当てたのがAIなら、その穴の前に立つ守衛もAIでいいでしょう。

経営判断? 攻撃を受けてるのに? まだ必要ですか?