緊急 · CVSS 9.22026-10-21 14:00 UTC 修正版公開初期の攻撃を確認

PHP2Shell は PHP 本体にある認証前 RCE です。PHP を更新し、再起動してください。

PHP エンジンの 2 つのメモリ安全性のバグ(CVE-2026-109618、CVE-2026-109619)により、認証されていない攻撃者がコードを実行したり、サーバーのメモリ(パスワード、API キー、セッショントークン)を読み取ったりできます。上で動くアプリケーションに関係なく、5.4 以降のほぼすべての PHP バージョンが影響を受けます。

技術者ではない方は、PHP2Shell のやさしい解説 をご覧ください——あなたのサイトや利用中の SaaS にとって何を意味するかを説明しています。

最終確認 2026-10-22 · 独立・ベンダー中立

バージョン、php -v の出力、またはサーバー群のバージョンを 1 行に 1 つずつ貼り付けてください。処理はすべてブラウザ内で行われます。

例:

CLI と Web サーバーは別の PHP ビルドを使っていることがあります。Web サーバーが実際に使っているバージョンを確認してください:php-fpm -v(または php-fpm8.3 -v)、もしくは対象サイトで phpinfo() を表示。

ブランチ脆弱修正版
8.5< 8.5.128.5.12
8.4< 8.4.278.4.27
8.3< 8.3.368.3.36
8.2< 8.2.358.2.35
8.1 · 8.0 · 7.4すべてソースのバックポートのみ
5.4 – 7.3すべて修正なし

PHP 8.2 は 2026-12-31 にセキュリティサポート終了

8.2.35 に更新すれば PHP2Shell は修正されますが、2026 年末までにもう一度移行が必要です。どうせ移行するなら 8.4 か 8.5 を目指しましょう。

今すぐやること

この順番で。これ以外に完全な修正はありません。

  1. 01

    すべての PHP 実行環境を洗い出す

    Web サーバー、コンテナ、ベースイメージ、共有ホスティング、ステージング。CLI のバージョンは PHP-FPM や Apache が使っているものと違うことがあります。

    手順
  2. 02

    修正版をインストールする

    8.5.12 · 8.4.27 · 8.3.36 · 8.2.35、またはディストリの修正済みパッケージ。WordPress/Drupal/Laravel を更新しても PHP は更新されません。

    手順
  3. 03

    PHP を動かすものをすべて再起動する

    PHP-FPM プール、Apache(mod_php)、FrankenPHP、キューワーカー、Octane/RoadRunner/Swoole。古いプロセスは古いコードをメモリに保持し続けます。

    手順
  4. 04

    確認し、さかのぼって調べる

    Web サーバーが報告するバージョンを確認します。2026 年 10 月初旬以降のログを確認し、不審な点があれば認証情報を入れ替えてください。

    手順

今日は更新できない? 暫定対策 で既知の攻撃経路へのリスクを下げられます。共有ホスティングの場合は ホスティング会社向けガイド を参照してください。

環境別ガイド

悪用されているか?

2026-10-22 時点の状況です。情報は錯綜しています。能力のある攻撃者はすでに動作するエクスプロイトを持っていると考えてください。

  • Cloudflare(CTO Dane Knecht):「We are seeing early attacks emerging and are updating mitigations as new vectors show up.」(初期の攻撃が出始めており、新たな攻撃経路が現れるたびに対策を更新している)
  • watchTowr は、10 月 21 日時点でハニーポット網により実環境での悪用を観測したとしています。
  • オランダ NCSC は当時悪用を確認しておらず、インターネットに公開されたすべての PHP システムを、パッチ適用までは脆弱とみなしています。
  • 侵害の成功が確認された公開事例はなく、どちらの CVE も CISA の KEV カタログには掲載されていませんでした。
  • GitHub には「PoC」を名乗るリポジトリが複数出回っています。Tenable はどれも動作を確認できていません——信頼できない、悪意がある可能性のあるコードとして扱ってください。

サービスを停止した組織(BambooHR、DigiD など)→

どのサーバー構成が影響を受けるか

最も明確に悪用できるのは mod_php ですが、Web リクエストを処理するすべての SAPI にパッチが必要です。

構成…109618…109619補足
Apache + mod_phpRCE 確認済みRCE 確認済み両 CVE ともデフォルト制限で RCE まで確認済み。最もリスクの高い構成です。
PHP-FPM(nginx、Apache、Caddy など)影響ありRCE 確認済みセッションのライフサイクル経由の RCE が FPM で確認済み。OOM 経路はアプリケーション層のコードパス経由で確認されていますが、汎用的な FPM 向けエクスプロイトは公開されていません。
FrankenPHP / LiteSpeed LSAPI影響の可能性大影響の可能性大アドバイザリでは影響の可能性が高いとされています。常駐ワーカーでは、リクエストをまたいだ残留状態の問題がむしろ大きくなります。
CLI(cron、キューワーカー、artisan)対象外対象外アドバイザリでは扱われておらず、通常の使い方では HTTP リクエストから到達できません。ただし同じパッケージなので、いずれにせよ更新してください。

自分のタイムゾーンでは何時にパッチが出た?

PHP は 2026 年 10 月 21 日(火)14:00 UTC、日本時間 23:00 に修正版を公開しました。この日、米国と欧州はまだ夏時間だったため、「EST」は実際には EDT(UTC−4)を指します。

タイムゾーンパッチ公開時刻
UTC14:00
米国太平洋時間(PDT、UTC−7)07:00
米国中部時間(CDT、UTC−5)09:00
米国東部時間(EDT、UTC−4)10:00
英国(BST、UTC+1)15:00
中央ヨーロッパ夏時間(CEST、UTC+2)16:00
インド(IST、UTC+5:30)19:30
中国/香港/シンガポール(UTC+8)22:00
日本(JST、UTC+9)23:00
シドニー(AEDT、UTC+11)01:00

攻撃者にできること

ログインせずにコードを実行

PHP ワーカーユーザー(例:www-data)としてコードを実行:Web シェルの設置、データ窃取、改ざん、横展開。

他のリクエストのメモリを読む

ワーカーのメモリには DB パスワード、API キー、セッション Cookie、TLS の鍵情報、他のユーザーのフォーム入力が含まれている可能性があります。

気づかれずにデータを持ち出す

メモリ漏えいの経路はコード実行を必要としないため、不審なプロセスを監視するツールは反応しないかもしれません。

よくある勘違い

安全ではないのに安全だと思い込んでしまう典型例です。

こう思っていたら……実際は
「WordPress/プラグインは更新した」バグは PHP インタープリタにあります。アプリケーションの更新では直りません。脆弱な PHP 上なら、単純な「Hello World」スクリプトでも影響を受けます。
「session.upload_progress.enabled = 0 にした」それで防げるのは一方の CVE の確認済み経路の一部だけで、CVE-2026-109618 には効果がありません。PHP の開発者自身が、唯一の対策はアップグレードだと述べています。
「apt upgrade したから大丈夫」実行中の PHP-FPM/Apache プロセスは、再起動するまで古いバイナリをメモリに保持しています。
「php -v では修正済みと出ている」それは CLI です。Web サーバーは別のパッケージ、コンテナ、バージョンを使っているかもしれません。php-fpm -v か phpinfo() で確認してください。
「Cloudflare/WAF の後ろにいる」WAF ルールは既知のペイロードのリスクを下げますが、攻撃者はすでにそれを変形させており、オリジンに直接アクセスできることも多いです。時間稼ぎにはなりますが、修正ではありません。
「バージョンが古く見えるから脆弱だ」そうとは限りません。Debian、Ubuntu、RHEL は上流の番号を変えずに修正をバックポートします。パッケージの changelog を確認してください。

2 つの CVE の概要

経緯

  1. 2026-10-20 15:00 UTCCVE 番号がフォーラムや SNS で出回り始める。誤った CVSS 10.0 が付いていた。
  2. 2026-10-20 19:30 UTCPHP が予告を前倒しで公開。
  3. 2026-10-20 ~20:00 UTCCalif が誤って PoC の動画を公開。
  4. 2026-10-20 23:00 UTC暫定対策の情報が一部の重要インフラ事業者に送られ、外部に漏れた可能性がある。
  5. 2026-10-21 03:02 UTCCloudflare の WAF ルールが Free を含む全プランで有効に。
  6. 2026-10-21 07:41 UTCChainguard が修正済みイメージを公開し、エンバーゴを 6 時間以上破る。
  7. 2026-10-21 11:51 UTCBambooHR が予防措置としてサービスを停止(米国、カナダ、アイルランド)。
  8. 2026-10-21 (CEST)DigiD や MijnOverheid を含むオランダの政府・教育機関のサイトが予防措置として停止。
  9. 2026-10-21 14:00 UTC協調公開:PHP 8.5.12、8.4.27、8.3.36、8.2.35 と、7.4、8.0、8.1 向けのソースバックポート。当初は 10 月 22 日の予定だった。
  10. 2026-10-21 15:03 UTCBambooHR が修正を適用し、テスト中と報告。

2024 年の監査からの全タイムライン → · 2021 年の Java のバグとの比較:PHP2Shell vs Log4Shell →