PHP脆弱性「PHP2Shell」で分かった“対応”と“対策”の決定的な違いと、AI任せのサイト管理が危ない理由
2026年10月、Webサイトの多くを支えるプログラミング言語「PHP」に重大な脆弱性が見つかり、首相がSNSで注意を呼びかけるという異例の事態になりました。ニュースを見て、慌ててサーバー会社のお知らせを確認した方も多いのではないでしょうか。
そんな中、私たちのような制作・保守の現場でよく耳にするのが、「うちはもうアップデートしたから大丈夫」「AIに聞きながら自分で直したから問題ない」という声です。なかには、「今はAIがあるから、制作会社との保守契約はいらない」と判断して契約を見直された方もいらっしゃるかもしれません。
先に結論をお伝えします。アップデートを当てることは、あくまで目の前の問題への“対応”です。サイトを守り続けるための“対策”とは、まったく別のものです。そして「AIに任せておけば安全」という考え方は、残念ながらセキュリティの基本とは真逆を向いています。
この記事では、今回のPHP脆弱性騒動を例に、セキュリティの「対応と対策の違い」、そしてAIでのサイト管理に潜むリスクについて、できるだけ分かりやすくお話しします。責めるための記事ではありません。「知らなかった」と気づけた今が、いちばん手を打ちやすいタイミングです。
PHP脆弱性「PHP2Shell」で何が起きたのか
まずは、今回の騒動で実際に何が起きたのかを整理しておきましょう。ここを押さえておくと、なぜ「アップデートしたから終わり」ではないのかが見えてきます。

今回見つかったのは、CVE-2026-109618とCVE-2026-109619という2件の脆弱性で、2つを組み合わせた攻撃は「PHP2Shell」と呼ばれています。深刻度を表すCVSSというスコアは2件とも9.2で、4段階のうち最も高い「緊急」に分類されました。何がそれほど深刻かというと、ログインなどの認証を一切経ずに、外部からサーバー上で好きなプログラムを実行されてしまうおそれがあるという点です。言ってしまえば、鍵のかかった家に、合鍵なしで正面から入られてしまうような状態です。
PHP脆弱性の修正版より先に攻撃情報が出回った

しかも今回は、修正版が出る前に脆弱性の詳細が外部に漏れてしまいました。PHPの開発チームは10月20日に緊急リリースを予告しましたが、その時点ですでに攻撃ツールの動画まで出回っており、「攻撃する側はどこが弱いか知っているのに、守る側にはまだ修正版がない」という時間が丸一日近く続いたのです。修正版のPHP 8.5.12、8.4.27、8.3.36、8.2.35が公開されたのは、日本時間10月21日の夜でした。
国内でも影響は大きく、IPA(情報処理推進機構)はPHPを使っているシステムの棚卸しを呼びかけ、首相もSNSで「難しい場合はサイトの一時停止も有効」と注意喚起しました。銀行やゲーム、EC、自治体などのサービスが相次いで止まり、大手レンタルサーバーでも緊急メンテナンスが行われています。さらに10月26日には、米国のセキュリティ機関CISAが、この脆弱性を「実際に悪用が確認された脆弱性」のリストに追加しました。
PHPは世界のWebサイトのおよそ7割で使われていると言われ、WordPressで作られたサイトもすべてPHPの上で動いています。「うちは小さな会社のホームページだから関係ない」とは言えない、というのが今回の怖さです。
停止したサービスの具体例や、今すぐ確認すべきポイントは「PHP脆弱性で何が起きた?ウマ娘やpixivも止まった騒動と、今すぐできる対策」でまとめています。
PHP脆弱性への「対応」と「対策」はまったく別物
ここからが、この記事でいちばんお伝えしたいところです。今回の騒動は、「対応」と「対策」の違いを考えるうえで、これ以上ないほど分かりやすい教材になりました。
たとえるなら、「対応」は火事が起きたときに火を消すこと、「対策」は燃えにくい家を建て、火災報知器をつけ、消火器の場所を家族で共有しておくことです。火を消すのはもちろん大切です。でも、火を消しただけで「もう火事の心配はない」と言う人はいませんよね。
PHPのアップデートを当てるのは、まさに「火を消す」行為です。そして今回は、火を消したと思ったら、すぐ隣でまた煙が上がっていました。
アップデート後も新たなPHP脆弱性が見つかった

PHP2Shellの修正版が出たわずか2日後の10月23日、PHPの開発チームは別の脆弱性(CVE-2026-115560)を公表しました。こちらも悪用されると任意のコードを実行されるおそれがあるものですが、先ほどの修正版を入れてもこの脆弱性は直りません。正式な修正は次回のリリースを待つ必要があり、それまでは特定の設定(セッションのアップロード進捗機能)をオフにする、という暫定的な回避策が案内されています。「アップデートしたから大丈夫」と安心してしまった方は、この続報まで追えていたでしょうか。
もうひとつ見落とされがちなのが、PHPのバージョンそのものの問題です。今回修正版が出たのは8.2〜8.5だけで、7系や8.1にはPHP公式からの通常の修正が提供されていません。つまり、古いPHPのまま放置されているサイトは、そもそも「アップデートを当てる」という対応すらできないのです。さらに8.2も2026年12月末でサポートが終わる予定です。今は大丈夫でも、数か月後には同じ状況に追い込まれる可能性があります。
PHP脆弱性対策は「侵入されていたら」を前提に考える

10月29日には、JPCERT/CCから気になる追加情報も出ています。攻撃者が、今回のPHPの脆弱性と、Linuxの権限を乗っ取る別の脆弱性を組み合わせて、ある製品への侵入に成功したとみられる痕跡が報告されたのです。攻撃者は一つの穴だけを狙うわけではありません。小さな穴をいくつもつなげて、奥へ奥へと入り込んできます。
だからこそ必要なのが、継続的なPHP脆弱性対策です。新しい情報を追い続けること、サポート期限を先回りして把握しておくこと、そして「もし侵入されていたら」を前提に被害の有無を確認すること。こうした一連の仕組みがあって初めて、「対策できている」と言えるのです。
「AIに任せれば安全」という思い込みの落とし穴
では、その継続的な対策をAIに任せればいいのでは?と考える方もいらっしゃると思います。実際、最近は「AIがあれば制作会社はいらない」「むしろAIに任せたほうが安全」という声まで聞こえてきます。AIが便利なのは事実ですし、私たちも日々の業務でAIを活用しています。ただ、AIでのサイト管理には、見落とされがちなリスクがいくつもあります。
AIツールの開発元ですら「最終判断は人間」と言っている

2026年2月、AnthropicというAI企業が、AIでプログラムの脆弱性を見つけて修正案まで出してくれる「Claude Code Security」というツールを発表し、大きな話題になりました。この発表を見て「これからはAIがセキュリティを守ってくれる」と感じた方もいるかもしれません。
ところが、このツールを解説している記事をよく読むと、修正を適用するのは人間が内容を確認して承認してから、という仕組みになっています。さらに、AIは誤りを犯す可能性があるので、重要なシステムでは必ず人間が最終確認をするように、と強調されているのです。そもそも、このツールはプログラムを書く開発者向けのものです。
つまり、AIを作っている側ですら「専門家が判断する前提で使ってください」と言っているわけです。これを「AIがあれば専門家はいらない」と受け取ってしまうのは、残念ながら真逆の読み方です。
AIそのものが攻撃の入口になる

もうひとつ考えていただきたいのが、「そのAIが騙されたらどうなるのか?」という点です。
いま世界中で問題になっているのが、「プロンプトインジェクション」という攻撃です。これは、AIが読み込むWebページや文書の中に悪意ある命令をこっそり紛れ込ませ、AIを操ってしまう手口です。Webアプリのセキュリティ基準を作っている国際団体OWASPは、AIを使ったアプリの最重要リスクのひとつにこれを挙げています。ChatGPTを開発するOpenAI自身も、この問題が完全に解決される見込みは低いと認めていますし、英国の国家サイバーセキュリティセンター(NCSC)は、この攻撃による被害がかつて猛威をふるったSQLインジェクションを上回る可能性まで警告しています。
攻撃に気づけず、聞かれていないことは守れない

さらに怖いのは、気づけないことです。米国の非営利団体CISの報告では、成功した攻撃のおよそ3分の2が、72時間以上も発見されなかったとされています。サイトの管理権限を持ったAIが知らないうちに操られていたら……と考えると、「AIに全部任せておけば安全」とはとても言えません。
そして、もっと根本的な問題があります。AIは「聞かれたこと」には驚くほど上手に答えてくれますが、「聞かれていないこと」までは守ってくれません。今回でいえば、「PHPをアップデートするには?」と聞けば手順は教えてくれるでしょう。でも、「アップデートしても直らない別の脆弱性が2日後に出た」「うちのPHPは古すぎて修正版がない」「サポート期限があと2か月で切れる」といったことは、そもそも知らなければ質問すらできないのです。何を確認すべきかを知っていること、それ自体が専門家の価値です。
餅は餅屋。セキュリティは「何重もの層」で守るもの

ここまで読んで、「じゃあ結局どうすればいいの?」と思われた方も多いと思います。答えはシンプルで、セキュリティはひとつの方法に頼らず、何重もの層で守る、ということです。
専門家の間では、これを「多層防御」と呼びます。家の防犯にたとえると分かりやすいかもしれません。玄関の鍵をかける、窓に補助錠をつける、防犯カメラを設置する、警備会社と契約しておく。どれか一枚が破られても、次の層で食い止める。あるいは、侵入されてもすぐに気づける。これが「対策」の本当の姿です。
WordPress側で具体的にどんな層を重ねられるのかは、「WordPressセキュリティ対策の決定版!改ざん・不正ログインを防ぐOptiBの12機能」で詳しく紹介しています。
「AIに任せれば安全」という考え方は、この何重もの守りを、AIという一枚の壁に集約してしまう発想です。その一枚が突破されたら、もう後ろには何もありません。AIは強力な道具ですが、守りの「一層」にはなれても、「最後の砦」にはなれないのです。
保守契約を切ると、守りの層が一枚ずつ抜け落ちる

Web制作会社との保守契約を切ったサイトで起きやすいのは、まさにこの層が一枚ずつ抜け落ちていくことです。PHPのバージョンが古いまま放置される、WordPress本体やプラグインの更新が止まる、バックアップが取られていない、不審なアクセスに誰も気づかない。どれも、普段は何も起きないので問題が見えません。けれど、今回のような事態が起きたとき、一気に表面化します。
私たちのような保守の専門家が日常的にやっているのは、派手な仕事ではありません。脆弱性の情報を毎日追いかけて、自分たちが預かっているサイトに影響があるかをすぐに判断すること。PHPやWordPressのサポート期限を先回りして把握し、余裕をもって移行の計画を立てること。万が一に備えてバックアップを取り、異変にすぐ気づける監視の仕組みを整えておくこと。そして、新しい道具(もちろんAIも含めて)をどこで使い、どこで人間が判断すべきかを見極めることです。
プロの仕事の価値は、何かが起きたときよりも、「何も起きていない時間」にこそあります。WordPressの保守が必要だと言われるのは、まさにこの「何も起きない状態」を作り続けるためなのです。
PHP脆弱性は「対応」で満足せず、「対策」できているかを確認しよう

今回のPHP脆弱性騒動が教えてくれたのは、アップデートを当てる「対応」と、サイトを守り続ける「対策」はまったく別物だということでした。修正版を入れた2日後には別の脆弱性が見つかり、古いバージョンには修正すら提供されず、攻撃者は複数の穴を組み合わせて侵入してくる。これが今のWebセキュリティの現実です。
AIはとても便利な道具ですし、上手に使えば守りを強くしてくれます。ただ、AIそのものも攻撃の対象になりうる以上、AIだけに頼るのは守りを一枚に減らすことと同じです。餅は餅屋。セキュリティは、専門家の知識とAIを含むさまざまな手段を重ねて、何重もの層で守るものです。
もし今、「そういえば、うちのサイトのPHPのバージョンを知らない」「保守契約を切ってから、誰も更新状況を見ていない」と少しでも思い当たることがあれば、それは決して恥ずかしいことではありません。気づけた今が、いちばん手を打ちやすいタイミングです。
まずは無料のセキュリティ診断・保守状況のチェックから
「今のサイトが本当に大丈夫なのか、まず知りたい」という方のために、無料のセキュリティ診断・保守状況のチェック相談を承っています。
お使いのPHPやWordPressのバージョン、サポート期限、プラグインの更新状況などを確認し、今すぐ手を打つべきことと、少し先に備えておくべきことを分かりやすくお伝えします。診断を受けたからといって、契約をお願いすることはありません。以前に保守契約を見直された方からのご相談も、もちろん大歓迎です。
「何を聞けばいいか分からない」という段階でも大丈夫です。お気軽にご相談ください。
👉 無料セキュリティ診断・保守状況チェックのご相談はこちら
参考・出典
- JPCERT/CC「PHPにおける複数の脆弱性(CVE-2026-109618、CVE-2026-109619)に関する注意喚起」 https://www.jpcert.or.jp/at/2026/at260033.html
- 株式会社シースリーインデックス「PHPの重大な脆弱性(2026年10月)への対応」 https://www.c3index.co.jp/blog/blog_3602/
- 株式会社ピボーテ「【緊急】PHPの脆弱性をわかりやすく図解解説」 https://pivo-te.co.jp/article/1315
- さくらインターネット「PHPの脆弱性に関する当社の対応状況について」 https://www.sakura.ad.jp/corporate/information/announcements/2026/10/22/1968226117/
- watchTowr「PHP2Shell FAQ」 https://watchtowr.com/intelligence/php-cve-2026-109618-faq/
- SOC Prime「CVE-2026-115560: New Unpatched PHP RCE Risk」 https://socprime.com/blog/cve-2026-115560-new-unpatched-php-rce-risk-requires-immediate-mitigation/
- QES ブログ「Anthropicの最新セキュリティツール『Claude Code Security』について解説」 https://www.qes.co.jp/media/claudecode/a862
- ThreatCluster「AI Prompt Injection Attacks: A Growing Cybersecurity Threat」 https://threatcluster.io/cluster/ai-prompt-injection-attacks-a-growing-cybersecurity-threat-9a9ab105
- Waxell「CIS prompt injection report」 https://www.waxell.ai/blog/cis-prompt-injection-340-enterprise-ai-risk

