技術解説 — TECH NOTE

PHPの脆弱性 php2shell は、
WordPress の更新では直りません

2026年10月に公表された php2shell は、WordPress やプラグインではなく、それらを動かす PHP 本体の脆弱性です。影響を受けるサイト、修正版と確認方法、WAF(エッジ)で遮断できる範囲とできない範囲を、順に解説します。

出典・運営:本ページは、サイトドック(SiteDock)の公式技術解説です。サイトドック(SiteDock)は、日本情報基盤サービス株式会社(JIISセキュリティラボ)が運営する、9つの守りを統合したWebサイト・Webアプリ向けの統合型セキュリティサービスです。

公開:2026年10月26日|内容は2026年10月26日時点の公表情報にもとづきます

監修:JIISセキュリティラボ 監修者情報を見る

01KEY POINTS

要点

php2shell は、2026年10月21日に公表された PHP 本体の脆弱性(CVE-2026-109618、CVE-2026-109619)で、細工したリクエストにより認証なしでサーバー上のコードを実行される恐れがあります。

PHP 5.4 以降を使っているサイトが対象で、WordPress・Drupal・Joomla・EC-CUBE などの PHP 製の CMS も含まれます。

今すぐやるべきことは、PHP を修正版(8.5.12/8.4.27/8.3.36/8.2.35 以降)へ更新することです。CMS やプラグインの更新では直りません。

サイトドックのエッジ防御に加入しているサイトでは、Cloudflare® が配信した php2shell 向けの遮断ルールが、脆弱性の公表前から有効になっていました。

02WHAT IS PHP2SHELL

php2shell とは?

php2shell は、PHP 本体(PHP のプログラムを実行するランタイム)のメモリの扱いに関する不具合の総称です。2件の CVE が割り当てられています。

  • CVE-2026-109618:メモリが不足して処理が止まったとき、準備が終わっていない内部データを、後片付けの処理が正しいデータとして扱ってしまう不具合です。
  • CVE-2026-109619:致命的なエラーでリクエストが中断されたとき、解放済みのメモリへの参照が残り、同じプロセスが次に処理するリクエストがその参照をたどってしまう不具合です。

どちらも、細工した HTTP リクエストを送るだけで発生させられます。影響は、サービスの停止(DoS)、メモリ内容の漏えい、そして最も深刻な認証不要のリモートコード実行(RCE)です。研究者により、WordPress・Drupal・Joomla の上でコードを実行できることが実証されています。

重要なのは、これがアプリケーションではなく PHP 本体の不具合だという点です。WordPress 本体、プラグイン、テーマをいくら最新にしても、その下で動いている PHP が古いままなら、この脆弱性は残ります。

03WHO IS AFFECTED

自分のサイトは対象になるのか?

PHP 5.4 以降で動いているサイトは、修正版に更新するまで対象になると考えてください。PHP は非常に広く使われているため、次のようなサイトの多くが当てはまります。

  • WordPress・Drupal・Joomla・EC-CUBE など、PHP 製の CMS や EC パッケージで作られたサイト
  • Laravel などの PHP のフレームワークで開発した Webアプリ
  • レンタルサーバーで、PHP を使うページやフォームを公開しているサイト

なかでも、Apache の mod_php で PHP を動かしている構成が最も危険とされています。この構成では、アプリのコードが実行されるより前の段階で不具合が起きるため、アプリ側の入力チェックやログイン画面では止められません。

04FIXED VERSIONS

修正版と、バージョンの確認方法

php2shell(CVE-2026-109618/109619)の修正版
PHP の系列修正版
8.5 系8.5.12 以降
8.4 系8.4.27 以降
8.3 系8.3.36 以降
8.2 系8.2.35 以降
8.1 以前(7.x・5.x を含む)修正版なし(サポート終了)

サーバーにログインできる場合は、php -v で使っている版を確認できます。Webサーバーが使う PHP とコマンドラインの PHP が別の版になっていることもあるため、管理画面やサーバーの設定もあわせて確認してください。

レンタルサーバーの場合は、事業者のお知らせで修正状況を確認してください。サイトごとに PHP の版を選べるサービスでは、修正版の入った系列を選び直す必要があることがあります。

Linux ディストリビューションが配布する PHP は、版番号を上げずに修正だけを取り込む(バックポート)ことがあります。その場合は版番号ではなく、配布元のセキュリティ情報で CVE-2026-109618/109619 の修正状況を確認してください。

05WHAT A WAF CAN AND CANNOT DO

WAF(エッジ)で止められる範囲、止められない範囲

WAF は、サーバーに届く前の通り道(エッジ)でリクエストを検査し、既知の攻撃パターンを遮断します。PHP を更新するまでの時間を稼ぐ防波堤として有効ですが、限界もあります。

止められる

  • エッジを経由して届く、既知のパターンに当てはまる攻撃リクエスト

止められない

  • エッジを通らず、サーバーに直接届くアクセス(オリジン直)
  • 遮断ルールをすり抜けるように変形された攻撃の一部
  • 遮断ルールの適用前に、すでに実行されてしまった処理の取り消し
  • session.upload_progress.name を既定値から変えているサイトに対する CVE-2026-115560(07)

※遮断ルールの配信元は、攻撃者がペイロードを変形して遮断の回避を試みていることを公表しています。WAF だけに頼らず、PHP 本体を更新してください。

06OUR RESPONSE

サイトドックの加入サイトでの対応

サイトドックのエッジ防御は、Cloudflare の上に実装しています。php2shell 向けの遮断ルールは Cloudflare が作成し、2026年10月21日 12時02分(日本時間)、脆弱性の公表の約9時間前に配信を始めました。

サイトドックは、既知の攻撃パターンに対する Cloudflare の管理ルールを「遮断」の設定で適用し、配信元の新しいルールを自動で取り込む構成で運用しています。そのため、php2shell 向けの7本の遮断ルールも、当社の追加作業を待たずに、公表前から加入サイトで有効になっていました。実際に、当社の収容環境でも、これらのルールによる攻撃リクエストの遮断を確認しています。

ただし、前の節のとおり、エッジでの遮断は一時的な防波堤です。サイトドックは次の役割を担い、根本対策である PHP の更新につなげます。

  • 遮断ルールを「遮断」のまま維持する設定管理(誤遮断の調整でも、php2shell 向けのルールは記録だけの設定に落としません)
  • サーバーに直接届くアクセスを絞るオリジン保護(プロプランの全ポート非公開)
  • 毎月の定期診断で、PHP などの使用技術がヘッダから外に見えていないかの確認と、証跡レポートでの報告

なお、サイトドックの定期診断は、php2shell そのものを検出する検査を行っていません。メモリを壊すタイプの脆弱性は、本番のサイトで安全に試す方法がないためです。PHP の版の確認は、サーバーの管理者にお願いしています。

07UPDATE

続報:CVE-2026-115560

2026年10月23日、関連する脆弱性 CVE-2026-115560 が公表されました。PHP のセッションのアップロード進捗機能(session upload progress)に関する不具合で、上記の修正版でも影響を受けます。PHP の次の定例リリースで修正される予定です。

既知の攻撃は、php2shell 向けの遮断ルールのうち #6 が対象としています。ただし対象になるのは、PHP の設定 session.upload_progress.name が既定値のサイトに限られます。この値を変えているサイトでは遮断ルールが働かないため、PHP の次期リリースを待って更新してください。

08FAQ

よくある質問

WordPress を最新にすれば大丈夫ですか?
いいえ。php2shell は PHP 本体(ランタイム)の不具合のため、WordPress 本体やプラグイン、テーマを最新にしても直りません。PHP を修正版(8.5.12/8.4.27/8.3.36/8.2.35 以降)へ更新する必要があります。
レンタルサーバーの場合、自分で何をすればよいですか?
まず、ご契約中のレンタルサーバー事業者のお知らせで、PHP の修正状況を確認してください。管理画面でサイトごとに PHP のバージョンを選べるサービスでは、修正版が入った系列(8.2 以降)を選び直す必要がある場合があります。8.1 以前を選んでいる場合は、サイトの動作確認をしたうえで新しい系列への切り替えを検討してください。
WAF を入れていれば PHP を更新しなくてよいですか?
いいえ。WAF は既知の攻撃パターンを入口で遮断し、PHP を更新するまでの時間を稼ぐためのものです。攻撃の変形や、WAF を通らないサーバーへの直接のアクセスもあるため、根本対策は PHP 本体の更新です。
サポートが終わった PHP 7.x を使っています。
PHP 7.x や 8.1 以前のサポートが終了した系列には、php2shell の修正版が提供されません。当面は WAF での遮断が主な手段になりますが、それだけで使い続けるのは危険です。修正版が提供される系列への移行計画を立ててください。
サイトドックに加入すると何が変わりますか?
サイトドックのエッジ防御に加入しているサイトでは、php2shell 向けの遮断ルールが脆弱性の公表前から有効になっていました。加えて、毎月の定期診断で PHP などの使用技術が外から見えていないかを確認し、エッジで対処できない範囲はレポートで明示します。PHP 本体の更新は、サーバーの管理者による作業が必要です。
09REFERENCES

参考情報

Cloudflare Managed Ruleset の php2shell 向けルール(説明:PHP Remote Code Execution Attack (CVE-2026-109618, CVE-2026-109619))
ルールルール ID
基本ルールc1d409ad838f47f59446f21cc438d5dd
#2f9a45927414245e3a64bb12d0a0c2f64
#3771c654ae1154d4daa72f4e1545d163c
#4217005865f0145f392300bac212afcc9
#538efdb17ea594501bb55a1d71867b12e
#6(CVE-2026-115560 も対象)4148ae686fdb4d01be673fab9d9c073d
#71389aa259617437392ce149c48143645
  1. Cloudflare deploys protections against php2shell vulnerability(Cloudflare ブログ)
  2. php2shell: Critical Vulnerabilities in PHP (CVE-2026-109618, CVE-2026-109619)(Endor Labs)

脆弱性は Calif.io・Wiz・OpenAI・Quarkslab により公表されました。修正版の番号は上記の公表情報にもとづきます。
更新履歴:2026年10月26日 初版

SERVICE

Webセキュリティを、定期診断から継続対策へ

サイトドックは、毎月の定期診断で弱点を見つけ、エッジで対処できるものはその場で修復し、実施した対策を毎月の証跡レポートでお届けします。

お問い合わせ・資料請求

Cloudflareは、米国およびその他の国・地域におけるCloudflare, Inc.の商標および/または登録商標です。