PHP の重大な脆弱性 php2shell、WordPress サイトの対象・対策まとめ

清水 風音

PatchOn創業者兼CEO

PHP の重大な脆弱性 php2shell、WordPress サイトの対象・対策まとめ

PHP 本体の脆弱性 2 件(CVE-2026-109618 と CVE-2026-109619)の修正版を、PHP の開発チームが 10/21 に公開しました。ログインしていない第三者が細工したリクエストを送るだけで、サーバー上で任意のコードを実行できるものです。WordPress のプラグインやテーマではなく、WordPress を動かしている PHP そのものの問題なので、WordPress の更新画面には何も出ません。

修正版が出た日に、脆弱性の中身も公開されました。10/21 の時点では、修正版に切り替える前の WordPress サイトが、PHP のバージョンに関係なく全部攻撃対象です。

https://www.php.net/archive/2026.php#2026-10-21-5

php.net の advisory。Critical Remote Code Execution、CVE-2026-109618 と CVE-2026-109619、修正版 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35、公開 2026 年 10 月 21 日
出典: php.net(10/21 時点)

PHP の開発チームの公開情報をもとに、やることだけ整理しました。

取るべき対応

  • サイトヘルスで PHP のバージョンを見る
    • WordPress の管理画面の「ツール → サイトヘルス → 情報 → サーバー」に出ます。8.5 なら 8.5.12、8.4 なら 8.4.27、8.3 なら 8.3.36、8.2 なら 8.2.35 以上で対応済みです
    • サーバー会社が修正版を自動で入れる場合もあります。入ったかどうかは、この画面の数字だけで判断する
  • それより前なら、サーバー会社の管理画面で PHP を修正版に切り替える
    • 切り替える場所はサーバー会社ごとに違い、修正版がまだ選べない会社もあります。選べないときは、その会社の告知を待つ
    • 同じ系統の中の切り替え(8.3 の中で上げるなど)では、サイトの動作は変わりません
  • 8.1 以前のサイトは、8.2 以降に切り替える
    • 8.1 以前には開発チームの修正版が出ません。8.2 も 12/31 でサポートが終わるので、切り替える先は 8.3 以降が無難です
    • 系統が変わるので、切り替えた直後にトップページと問い合わせフォームなど主要な動作を見る。崩れたら元の系統に戻せるので、確認してから進めるのが無難です
    • 開発チームは 7.4 / 8.0 / 8.1 向けにも最小限の修正をソースコードで出していますが、当てるのはサーバー会社です。古い系統にも当てたと告知している会社では、その告知が根拠になります。バージョンの数字では分かりません

すぐ切り替えられない場合の軽減策として、開発チームは session.upload_progress.enabled=0 と memory_limit / post_max_size の制限を挙げていますが、どれも一部の攻撃経路を塞ぐだけで、安全にはならないと明記しています。レンタルサーバーでは、どれもサーバー会社側の設定です(.user.ini では効きません)。

対象者

対象は、Web のリクエストを受けているすべての PHP で、修正版より前はバージョンを問わず対象です。8.1 以前も含み、PHP-FPM か Apache の mod_php かといった動かし方も問いません。ログインも、特定のプラグインやテーマも要らず、WordPress 本体のバージョンは関係ありません。

PHP の系統修正版(10/21 公開)
8.58.5.12
8.48.4.27
8.38.3.36
8.28.2.35(8.2 は 12/31 でサポート終了)
8.1 以前修正版なし。8.2 以降に切り替える

起こったこと

ログインしていない第三者が、細工した HTTP リクエストを送るだけで、Web サーバーの実行ユーザーの権限で任意のコードを実行できます(CVSS v4.0 9.2、2 件とも)。開発チームは mod_php の既定の設定に対して、WordPress などアプリケーションのコードが動き出す前に攻撃が成立することを実証していて、mod_php をいちばん危険としています。

原因

開発チームによると、1 件目はメモリー不足の処理が、リクエストの内部データを初期化し終える前に PHP を中断するもので、後片付けがその不完全なデータを正しいものとして扱います。2 件目は、リクエストが終わってメモリーが解放されたあとも内部の状態が残り、同じワーカーが次のリクエストでその古い状態を使うものです。詳細は GitHub の公開情報(1 件目・2 件目)にあります。

お使いの WordPress は何年式ですか

URL を入れるだけで、いつから更新が止まっているか(年式)を外から診断できます。

  • 登録不要
  • インストール不要
  • 結果はその場で表示

関連記事

株式会社ロケッタ

東京都渋谷区渋谷3-1-9 渋谷YAZAWAビル3FTEL: 050-6867-9025

© Rocketa Inc. 2026. All Rights Reserved.