PHPの重大な脆弱性(通称PHP2Shell)のニュースで、もう1つ話題になったのが、見つけ方です。PHPの財団は発見者として、米国のセキュリティ企業Calif、OpenAI、Wizの3者を挙げています。この記事では、経緯を詳しく公開しているCalifの文書を中心に読みます。Califは、AIを相棒にPHPのソースコードを調べていました。

AIで脆弱性を見つけると聞くと、「AIに頼めば欠陥が全部出てくる」ような印象を持つかもしれません。発見者が公開した経緯を読むと、実際はもう少し地道な話でした。

発見までの時系列

Califの公開した経緯によると、流れはこうです。

8月1日に、メモリ不足をきっかけにした最初の欠陥と、処理が中断される箇所を見つけました。8月11日に最初の欠陥をPHPに報告し、公表の時期を調整する手続き(協調的な開示)が始まります。8月14日には実際に攻撃が成立することを示すコードをPHPに共有し、翌15日にPHP側が確認しました。2件目は8月21日に報告されています。修正版が出たのは10月21日です。

報告から修正版まで、およそ2か月半かかっています。PHPはWebの大部分を支える基盤なので、各ディストリビューションへの事前の配布も含めて、それだけの準備が必要だったのだと思います。

この調査は、OpenAIが2026年6月に始めた、AIを使ってオープンソース(誰でも中身を見て使える形で公開されたソフト)の欠陥を見つけて直す取り組み「Patch the Planet」の一環でした。

AIは何をしたのか

Califによると、使ったのは、対話しながら調べるAIの相棒と、PHPのソースコードを読み込むエージェントです。エージェントは、自分で手順を考えて作業を進めるAIのことです。見つけたことは、SKILL.md というファイルにまとめて、次の調査に生かしていました。Claude Codeのスキル(作業のコツや手順を書き残して、AIに毎回読ませる仕組み)と同じ発想です。

注目したいのは、特別な環境や、限定公開のモデル(AIの頭脳にあたる部分)は使っていないと明記していることです。一般に手に入るAIの道具で見つかった、ということになります。

同じ時期に、別のセキュリティ企業のWizも、AIを使って関連する攻撃の手法を見つけていました。AIによる脆弱性の発見が、1社の特殊な事例ではなくなってきています。

それでも人の知識が要った

一方で、Califは何度も、人の知識の重要さを書いています。

彼らによると、調査を始めた時点で、すでにどの研究所もPHPをAIで調べ尽くしていました。それでも見つかったのは、PHPの過去の脆弱性の歴史を知っている人が、AIを、昔PHPで何度も見つかったのと同じ種類の欠陥の方向へ導いたからだといいます。AIは新しく有名な欠陥の型に寄っていきがちで、古くて地味な型には自分からは向かわない、という指摘もあります。

「単純なプロンプト(AIへの指示文)で、すべての欠陥を掘り出せるモデルはない」。Califはこう書いています。対象をよく知れ(know your target)という昔からの原則は、AIの時代にも通用する、というのが彼らの結論です。

私もClaude Codeで自分のコードのセキュリティの確認をさせることがありますが、「全体を見て問題を探して」と頼んだときより、「この入力欄に長すぎる値が来たらどうなるか調べて」と狙いを絞ったときのほうが、意味のある指摘が返ってきます。規模は違いますが、同じことだと感じました。

2年前に兆候はあった

もう1つ考えさせられる事実があります。日経クロステックによると、PHPの財団は、今回の1件につながる問題の兆候を2024年に把握しながら、修正が停滞していたことを「構造的な失敗」と認めました。

見つける力がAIで上がっても、見つかったものを直す人の手が足りなければ、欠陥は残り続けます。PHPのように世界中が頼っている基盤が、少人数の開発者で支えられているという構図は、今回あらためて表に出ました。

開発する側は何を変えるか

AIで脆弱性が見つかりやすくなるのは、守る側だけの話ではありません。攻撃する側も同じ道具を使えます。今回、修正版が出る前に情報が流れ、出た直後から攻撃の試みが観測されたのは、その表れだと思います。

自分でサービスを作る側に回るなら、少なくとも次の3つは習慣にしておきたいところです。使っている言語やライブラリ(よく使う機能をまとめた部品)のバージョンを一覧にしておくこと。セキュリティの修正が出たら数日以内に当てられる手順を用意しておくこと。自分のコードも、AIに狙いを絞って確認させること。

Claude Codeでコードのセキュリティを確認するときの注意点は、別の記事にまとめています。

AIによる脆弱性の発見は、これからも続きます。7月にWordPress本体で見つかった脆弱性(WP2Shell)も、AIを使った調査で見つかったものでした。PHP2Shellは、そうした流れが、Webの基盤そのものにまで届いた例として記憶されることになりそうです。