PHP2Shellめぐる一連の内容について振り返ってみる
PHP2Shellの件、いろいろ大変だった(過去形になってるけど今もごたごたしてる)ので記録を残しておこうと思います。
まずは何が起きて、なぜここまで大騒ぎになったのか。自分の対応を振り返る前に、2026/10/25時点で分かる状況を整理しておきます。
何が起きたのか
PHP2Shellは、PHP本体で見つかった2件の重大な脆弱性、CVE-2026-109618とCVE-2026-109619に関する呼び名。条件がそろうとサーバー上で任意コードを実行できてしまう、というもの。PHP公式の深刻度評価は、どちらもCVSS v4.0で9.2、Criticalです。
WordPressや特定のフレームワークの話ではなく、それを動かすPHP自体の問題です。PHP公式は、Webリクエストを処理する各種のPHP環境をリスクの対象として挙げています。ただし、攻撃が成立する条件や危険の度合いは構成によって違い、すべてのサイトが同じように乗っ取られるという意味ではありません。
修正版が出るまでの経緯
PHP Foundationの説明によると、問題につながる兆候は2024年に把握されていたそうです。ただ、互換性や性能への影響などから修正方針がまとまらず、対応が難航。財団自身も、意思決定の仕組みと人員不足による構造的な失敗だったと認めています。
「OpenAIが見つけた」という話には、OpenAI自身の報告に加えて、セキュリティ企業のCalifがOpenAIの取り組み「Patch the Planet」の一環として、GPT-5.6 Solを使って重大な問題を発見したという経緯もあります。OpenAIだけが単独で発見した、とまとめると少し違いますね。
出典:PHP Foundationによる発見・報告の経緯、OpenAIの発表
その後、関係者が公開日を合わせて準備を進めていたところ、公開直前に情報が広まります。以下の時刻は日本時間です。
| 日時 | 出来事 |
|---|---|
| 10月21日 0時ごろ | CVE番号がSNSなどに出回る。公開時刻と深刻度には誤った情報も含まれていた。 |
| 10月21日 4時30分 | PHP側が事前告知。当初22日23時だった修正版の公開を、21日23時へ前倒し。 |
| 10月21日 5時ごろ | PHP Foundationによると、報告元企業のCalifが実証動画をお漏らし公開。削除後もコピーが流通した。 |
| 10月21日 23時 | 修正版の公開時刻。PHP 8.2.35、8.3.36、8.4.27、8.5.12が提供された。 |
公開直前の流れはPHP Foundationの説明に、修正版はPHP公式の告知に基づきます。
Califの公式記事では、複数のWebアプリケーションを対象にした実証内容が紹介されています。
ここで、最初の情報流出と、攻撃手順の全面公開は分けておきたいところです。財団によれば、最初に出回ったのはCVE番号などで、技術的な詳細は含まれていませんでした。「深刻度10.0」という情報も流れましたが、正式な評価は9.2です。
とはいえ、修正版がまだ手元にないうちから重大な問題の存在が広まった。運用する側は、公開を待ちながら準備や停止の判断を進める状況になったと整理できます。
なぜここまで大騒ぎになったのか
ここまで大騒ぎになったのは影響範囲の広さと攻撃の深刻度、対応に使える時間の短さなど複合的な影響が重なったことだと思います。
PHP 5.4以降は、少なくとも一方の脆弱性の影響を受けると報告されています。一方で、PHPプロジェクトから通常の修正版が提供されたのは8.2以降。7.4・8.0・8.1向けにも最小限のソースバックポートは提供されましたが、そのまま適用できる更新パッケージがあるかは、OSの配布元や保守事業者などに確認する必要がありました。
てなわけで「パッチを当てる」という単純な話で済まないレガシーなシステムは頭を抱える羽目になったわけです。まぁ古いバージョンで塩漬けしているほうが悪いといえばそうなのですが、修正されたソースがあっても、使っている環境ですぐ更新できるとは限らないというのはなかなか厳しいと思います。
おまけにPHPは破壊的な変更も多く、バージョンを上げるというのが気軽にできないというのもあります。また、パッチ公開から攻撃手法はばれる可能性が高いわけで、無停止の場合その短期間でサービスにデグレがないかもチェックしながらデプロイするという厳しい状況に置かれたのも大きいはずです。
出典:IPA「PHPの脆弱性対策について」、PHP公式の更新案内
対象を洗い出し、更新できるか確認し、難しければ止めるかを決める。それを短時間で進める必要があった。この状況が、対応を大きなものにしたのだと思います。
攻撃の難しさと、AIへの警戒
個人的には、攻撃として成立させるのは結構難しそうだと感じました。実際、PHP公式のアドバイザリでも、CVE-2026-109618の攻撃の複雑さは「High」と評価されています。深刻度9.2という数字だけで、どの環境にも簡単に攻撃が成功するという話ではありません。
ただ、難しいから当面は大丈夫、とも言い切れはしないと思います。複雑な攻撃をAIが大幅に助けることは明らかでしょうし。
国内の情報漏洩が続いていたことも大騒ぎの原因の一つだったと思う
国内で情報漏洩が相次いでいた時期だったことも、今回の受け止め方に影響したのではないかと感じています。
9月にはタイムズカーへの不正アクセスで、運転免許情報や免許証画像などを含む個人情報の流出が公表された。この報道が印象に残っていて、その後もいろいろな企業やサービスから流出報告が次々と出てきたように感じた。タイムズカーの9月28日付の発表
すべてが同じ原因でつながった事件でもなくすべてがAIの攻撃というわけでもないが、情報漏洩の話が続く中で今回のPHPの問題が出てきた。
騒動の渦中で、広く使われているPHP本体の重大な問題は脆弱性そのものの危険性に加えて、情報漏洩やAIへの警戒も重なり、想像以上に大きな騒動になったように感じている。
首相や政府も対応を呼びかけた
国内では、IPAが10月21日に事前準備を呼びかけ、22日に修正版の公開を受けた続報を出しています。
それに加えて、21日夜には高市首相がXで、同日23時に公開される修正版を速やかに適用できるよう準備を呼びかけた。すぐに適用できない場合には、Webサイトの一時停止もリスクを減らす方法の一つとして挙げた。首相の投稿
翌22日午前には、木原官房長官も会見でこの問題に言及。政府関係機関や重要インフラ事業者などに修正版の適用を注意喚起したことを説明し、迅速な適用が難しい場合の一時停止にも触れています。その時点では、政府機関や重要インフラ事業者に関係する被害の報告は受けていない、という説明でした。
出典:FNNプライムオンライン(フジテレビ政治部)「プログラミング言語『PHP』に脆弱性も『今のところ被害報告なし』木原官房長官 使用事業者に修正推奨」
政府や総理大臣まで言及したことも、騒動が大きくなったと感じた理由だと思います。普段なら技術担当者の間で扱われるソフトウェア更新の話が、ニュースでも取り上げられた。これは大きいと思う。
J-CASTニュースの報道では、首相の呼びかけが経営層への説明やサイトの停止判断を後押しした、という現場の反応も紹介されています。
私が対応した内容
自分のプロジェクトでもPHPを使っていたのでバタバタな感じになりました。 政府やニュースが取り上げたことが影響かわかりませんが、クライアントが一時的にサービス停止という判断ができたのはよかったと思う。結構セキュリティには甘々な感じだったのですが、今回ばかりは尻に火が付いたようです。
PHPが8のものはパッチを当てたverを深夜にリリースしたり、パッチを当ててデグレしてないかチェックしたり、バージョンが古いものはWAFやphp.iniをいじくりまわして意味があるのかないのかよくわからん対策をしたりいろいろしてました。あとAWS環境ではAmazon linuxからのパッチが出るのが結構遅くて困りましたね。待てない人は自前でビルドしたとかも聞きましたね。 リリースされた瞬間はリポジトリが激重になるという現象もあってそんなこともあるのかといい勉強?になりました。
まだまだ影響は続きそうです。この対応をしている皆さんも、どうぞご自愛ください。

コメント