結論:2026年10月21日、PHPの開発チームは、認証なしで外からプログラムを実行されるおそれ(リモートコード実行)がある緊急の脆弱性2件を直した PHP 8.5.12・8.4.27・8.3.36・8.2.35 を公開しました。完全な対策は更新だけです。WordPressなどPHPで動くサイトは、今日中にPHPの版を確かめ、更新するか、更新を待つ間の一時対策を入れてください。
- 何が起きた:CVE-2026-109618(メモリ不足のときの中断処理の不具合)と CVE-2026-109619(前のリクエストの後始末の不具合)の2件です。深刻度はどちらも CVSS v4.0 で9.2(緊急)です。
- 誰に影響する:Webのリクエストを処理しているすべてのPHP(PHP-FPM、Apacheのmod_php、php-cgi、FrankenPHP、LiteSpeed)です。開発チームはmod_phpを最も危険とし、アプリの処理が始まる前に、認証なしのリクエストで攻撃が成り立つことを確認しています。
- 何をする:修正版か、Linuxディストリビューションの修正パッケージへ更新します。レンタルサーバーなら事業者の更新状況を確かめます。更新までの一時対策は「完全ではない」と公式が明記しています。
対象読者:WordPressなどで自社サイトを運営する経営者・Web担当者、PHPのサーバーを管理する開発・情報システムの担当者
読了後にできること:自社サイトが対象かを確かめ、更新・一時対策・侵入の確認・復旧の準備を、今日やる順に進められます。
最終更新:2026年10月22日(JST)
10月21日の夜、私たちはこの更新の公開を待ちながら、自社で運用しているWordPressのサイトを1台ずつ確かめていました。PHPの開発チームは21日の早朝(日本時間)に「同じ日の23時に緊急の修正を出す」と予告していて、実際に新しい版が出たのは予告より少し早い22時半ごろでした(私たちの監視での確認)。自社で管理しているサーバーには、公開から1時間ほどで修正を当てています。
一方で、レンタルサーバー(共用サーバー)の上のサイトは、PHPの更新を事業者に任せるしかありません。更新が届くまでの間に自分でできることは限られていて、しかも公式は「一時対策では安全にならない」とはっきり書いています。「自分では上げられないのに、待っている間も狙われうる」。これが、多くの中小企業のサイトにとって一番悩ましい点です。
この記事では、PHPの公式の告知(php.net)とGitHubの2件のセキュリティ勧告、IPAの注意喚起を一次情報にして、何が起きたか、どの環境が対象か、今日やることを順に整理します。私たちが実際に対応して分かった注意点も、該当する箇所に入れました。
なお、10月21日にIPAが出した事前の注意喚起の時点では、IPAはこの2件を悪用した攻撃を確認していません(同じページは、追記があれば更新するとしています)。一方でCloudflareは、公開前に情報が漏れ、攻撃の通信を観測したと公表しています(下の追記)。攻撃が始まっている前提で、更新はできるだけ早く行ってください。
【2026年10月22日 続報】
同じ10月21日に、Node.jsも22・24・26系のセキュリティ更新を公開しました(深刻度「高」が4件)。Node.jsで動くWebサービスやMCPサーバーがある会社は Node.jsの脆弱性(2026年10月)|22・24・26系の更新と今やること も確かめてください。
【2026年10月22日 1時 追記】攻撃の通信が観測されています
Cloudflareは10月21日、公開前に脆弱性の情報が漏れ、同社の顧客を狙う攻撃の通信を観測したと公表しました。攻撃者は、防御をすり抜けようと攻撃の中身を書き換えていたとしています。
同社は日本時間21日12時2分から、無料プランを含め、WAF(Webアプリケーションファイアウォール)を使っている利用者を自動で守るルールを入れています。Cloudflareを使っているサイトは、WAFのマネージドルールが有効かを確かめてください。ただし同社も、WAFがあってもPHPの更新は必要だとしています。
同社のブログによると、この2件はCalif.io・Wiz・OpenAI・Quarkslabが公表に関わり、PHP 5.4以降のすべてのWebサーバーが影響を受けます。IPAの注意喚起(10月21日)は、22日1時の時点では更新されていません。
PHPの開発チームが10月21日に公開した内容
今回は、予告から公開までが1日足らずでした。日付は日本時間です(php.netの表記は協定世界時のため、予告は「10月20日」と表示されています)。

| 日付 | 出来事 | 出典 |
|---|---|---|
| 10月21日 早朝 | PHPの開発チームが、同じ日の23時(協定世界時14時)に緊急のセキュリティリリースを出すと予告(php.netの日付は協定世界時の10月20日)。2件とも CVSS v4.0 で9.2。詳細が漏れたり悪用が見つかったりした場合は前倒しするとした | php.net |
| 10月21日 | IPAが「事前準備のお願い」を公開。この時点でIPAは悪用した攻撃を確認しておらず、PHPを使うプログラムの棚卸しを呼びかけた | IPA |
| 10月21日 夜 | PHP 8.5.12・8.4.27・8.3.36・8.2.35 を公開。2件の技術的な詳細(GitHubのセキュリティ勧告)も同時に公開 | php.net・GitHub |
| 10月21日 | UbuntuがPHPの修正パッケージを公開(24.04の php8.3 は 8.3.6-0ubuntu0.24.04.13 以降が修正済み) | Ubuntu |
2件の中身は次のとおりです。どちらも、壊れたデータや解放済みのメモリを使ってしまう不具合(解放後の使用)で、細工したリクエストを送られると、サーバーの上で任意のプログラムを動かされるおそれがあります。
| CVE番号 | GitHubの勧告 | 何が起きるか | 深刻度 |
|---|---|---|---|
| CVE-2026-109618 | GHSA-w8hw-w9fx-j79w (RCE via OOM corruption) | メモリが足りなくなったときの中断処理で、作りかけのデータが壊れた状態のまま、リクエストの後始末に使われる。ファイル送信の形式(multipart)の解析の問題を使うと、PHPの上限の範囲内のリクエストでもメモリ不足を起こせる | CVSS v4.0 9.2(緊急) |
| CVE-2026-109619 | GHSA-6wmf-4rv5-p3rp (RCE via stale global state) | あるリクエストのデータを指す参照が後始末の後も残り、同じプロセスが次のリクエストを処理するときに、解放済みのメモリを使ってしまう | CVSS v4.0 9.2(緊急) |
報道では、海外の研究者が公開した攻撃の実演動画の名前から「PHP2Shell(php2shell)」とも呼ばれています。難しい仕組みは覚えなくて大丈夫です。経営者や担当者が押さえるべきなのは、「ログインしていない第三者のリクエストだけで、サーバーを乗っ取られうる種類の不具合」だという点です。
対象になる環境と、更新後の版
PHPの開発チームは、Webのリクエストを処理しているすべてのPHPを対象としています。サポート中の系列ごとの修正版は次のとおりです。

| PHPの系列 | 修正版 | 補足 |
|---|---|---|
| 8.5 | 8.5.12 | 更新できない間は fatal_error_backtraces=0 も一時対策になる |
| 8.4 | 8.4.27 | — |
| 8.3 | 8.3.36 | — |
| 8.2 | 8.2.35 | 2026年12月31日でサポート終了。以降は修正が出ない |
| 8.1以前 | 開発チームからの更新なし | Linuxディストリビューションや長期サポートの提供元に確認。開発チームは 7.4・8.0・8.1 向けに最小限のソースの修正だけを用意した |
危険度は、PHPの動かし方(Webサーバーとのつなぎ方)によって違います。GitHubの2件の勧告の評価をまとめると次のとおりです。
| 動かし方 | 公式の評価 |
|---|---|
| Apacheのmod_php | 最も危険。アプリの処理が始まる前に、認証なしのリクエストで攻撃が成り立つことを確認 |
| FrankenPHP | ソースの分析では、mod_phpと同じく後始末を必ず呼ぶため、アプリに関係なく狙われる可能性が高い |
| PHP-FPM | CVE-2026-109618はソースの分析から攻撃を受けうる(完全な攻撃は未実証)。CVE-2026-109619のセッションの経路では、FPMでも乗っ取り(RCE)が確認されている(アプリの処理次第) |
| LiteSpeed(LSAPI) | FPMに近い。アプリごとの攻撃が成り立つ可能性が高いが、まだ検証されていない |
もう一つ大事な点があります。CVE-2026-109619で使われたセッションの進み具合の機能(session.upload_progress)は既定で有効で、アプリが session_start() を呼んでいなくても使われます。WordPressのようにセッションを使わないサイトでも、更新が要ることに変わりはありません。
Linuxディストリビューションは、公開前に修正を受け取っていました。ここで一つ注意があります。Ubuntuなどは修正を元の版の番号のまま取り込むため、版の表示が「8.3.36」にはなりません。たとえばUbuntu 24.04の php8.3 は、版の末尾が「0ubuntu0.24.04.13」以降なら修正済みです。修正済みかどうかは、版の末尾まで見て確かめてください。
また、IPAは、PHPがWebアプリだけでなく、ソフトウェア製品やネットワーク機器の中でも使われている場合があると注意しています。社内で使っている機器の管理画面なども、提供元のセキュリティ情報を確かめておくと安心です。
WordPressのサイトで今日やること
次の順に進めてください。上から順に、短い時間でできる作業です。

- PHPの版を確かめる:WordPressの管理画面の「ツール」→「サイトヘルス」→「情報」→「サーバー」に、PHPの版が出ます。レンタルサーバーなら、サーバーの管理画面でも確かめられます。
- レンタルサーバーなら、事業者のお知らせを確かめる:管理画面で選べるのは「8.3」「8.4」といった系列で、系列の中の修正(8.3.36など)を当てるのは事業者側、という形が多いはずです。障害・メンテナンス情報のページで、更新の予定と完了を確かめてください(たとえばKAGOYAは10月21日に、影響を調べていること、修正版を確認したうえで順次更新することを告知しています)。8.1以前を選んでいるなら、サポート中の系列に切り替えます。
- VPSや自社のサーバーなら、更新して再起動する:更新の前にスナップショットかバックアップを取り、OSのパッケージを更新して、php-fpmなどPHPのプロセスを再起動します。私たちは、更新の前と後で主なページの応答(表示できたか、転送されたか)を比べ、変わっていないことを確かめてから作業を終えました。
- 古いPHPの移行を決める:8.1以前は、開発チームからの修正がもう出ません。8.2も年末で終わります。今日のうちに、いつサポート中の系列へ移すかを決めておきます。
- ほかのPHPを棚卸しする:問い合わせフォームの古いプログラム、社内の業務システム、機器の管理画面など、サイト以外でPHPが動いていないかを確かめます。IPAも、PHPを使うプログラムの棚卸しを勧めています。
すぐ更新できないときの一時対策
PHPの開発チームは、一時対策について「特定の攻撃の経路を減らすだけで、安全にはしない」と書いています。あくまで更新までのつなぎとして使ってください。公式が挙げている主な対策は次のとおりです。

| 対象 | 公式が挙げる一時対策 | 注意 |
|---|---|---|
| CVE-2026-109618 | memory_limit=-1 を、アプリが上書きできない形(FPMのプールやApacheの設定の php_admin_value など)で設定する | メモリ確保そのものが失敗した場合は、まだ不具合の処理に届きうる。すべてのワーカーを再起動し、プール・フォルダ・アプリの設定で上限が戻っていないか確かめる |
| CVE-2026-109618 | post_max_size を小さくする(ファイルを受け取らないなら8M、受け取るなら32M。upload_max_filesize はそれより小さく) | — |
| CVE-2026-109618 | Webサーバーやプロキシで、デコード後の本文の大きさ・入力欄の数・multipartの部品の数・ヘッダーの数・入れ子の深さに上限を設ける。multipartを使わないアプリなら、PHPに届く前に止める | Content-Length の無いリクエストにも効くようにする |
| CVE-2026-109618 | コンテナやcgroupのメモリ上限を、落ちるのを1つのワーカーに留める歯止めとして使う | 攻撃を防ぐ保証はない(コンテナごと落とすと全ワーカーが落ちうる)。RLIMIT_AS・RLIMIT_DATA は使わない(不具合の処理を引き起こす) |
| CVE-2026-109619 | session.upload_progress.enabled=0 を、php.ini・FPMのプール・サーバーの設定で入れ、すべてのワーカーを再起動する | ini_set() やFPMの .user.ini では当てにならない。確認された経路だけを止める。使わない機能なら、更新した後も0のままが勧められている |
| CVE-2026-109619 | PHP 8.5なら fatal_error_backtraces=0 を入れて再起動する | 確認された経路の一つを止めるだけ |
| CVE-2026-109619 | リクエストの初期化より前に警告を出す古い設定を外す(.htaccess の php_value の mbstring.internal_encoding・mbstring.http_input・mbstring.http_output など) | エラー表示を隠しても(error_reporting・display_errors・@)効かない。mod_phpでは .htaccess の php_value が初期化の前に読まれる |
| CVE-2026-109619 | 攻撃者が届く場所の致命的エラーや実行時間切れ(アップロード・取り込み・後始末などの処理)を減らす | ログにエラーが無いことは、安全の証明にならない |
レンタルサーバーでは、php.iniやFPMの設定に手が届かないことが多く、自分で取れる手は限られます。事業者によっては、.htaccess に残っている古い php_value(mbstring.internal_encoding など)を外すことと、multipartの送信をPHPの手前で止めることはできます。Apache互換の .htaccess で multipart を止めるなら、次のように書けます。
# PHPの更新が来るまでの一時対策:multipart/form-data の送信を止める
RewriteEngine On
RewriteCond %{HTTP:Content-Type} ^multipart/form-data [NC]
RewriteRule ^ - [F]私たちが実際に試して分かった注意点が4つあります。
- 変数の書き方:「%{CONTENT_TYPE}」と書いても、Apacheの書き換え機能はこの名前を知らないため空のまま扱われ、エラーも出ずに何も止まりません。「%{HTTP:Content-Type}」と書きます。
- 入れる場所:.htaccess の先頭(WordPressの書き換えの規則より前)に入れます。下の階層に、自前の書き換えの規則を持つ .htaccess があると、そこでは親の規則が効かないことがあるので、そちらにも入れます。
- 止まるもの:WordPressの問い合わせフォーム(Contact Form 7など)は、ブラウザからmultipartで送るものが多く、止めている間は問い合わせも届きません。管理画面からの画像のアップロードも止まります。電話やメールの窓口をサイトに案内しておきます。
- 効いているかの確認:入れた後に、multipartの送信が拒否(403)になること、普段の閲覧や通常のフォーム送信が前と同じことを確かめます。Cloudflareなどの前段で止める場合は、サーバーのIPアドレスへ直接届く経路が残っていると抜けるので、その点も確かめます。
この方法で減らせるのは主にCVE-2026-109618の経路で、CVE-2026-109619は別の経路でも狙われえます。PHPが更新されたら、問い合わせを戻すために外すのを忘れないでください。
入られていないかの確かめ方
更新したからといって、それより前に入られていないとは限りません。公式の勧告も「ログにエラーが無いことは安全の証明にならない」としています。更新の前後で、次の点を確かめてください。

- PHPのプロセスの異常終了(エラーログの「exited on signal 11」「Segmentation fault」など)が、急に増えていないか。メモリを壊す攻撃の試行で出ることがあります。
- 画像などのアップロード用のフォルダ(WordPressなら wp-content/uploads)に、拡張子が .php のファイルが無いか。
- 最近変わった .php ファイルのうち、WordPress本体・テーマ・プラグインの更新で説明できないものが無いか。
- 知らない管理者ユーザーや、知らない定期実行(WordPressの予約イベントとサーバーのcron)が増えていないか。
- PHPのプロセスが、データベースや決まったAPI以外の外部へ通信していないか。
私たちの点検では、自分たちが対応のために足した定期実行の変更を、点検の仕組みが「入られた兆候」として拾ってしまう場面がありました。対応中に足した設定やcronは記録しておき、兆候と取り違えないようにしてください。
本当に兆候が見つかったら、サイトをメンテナンス表示に切り替え、ログを消さずに保存してから、ホスティング事業者やセキュリティの専門家に相談します。AIを使った攻撃も含めた中小企業の守り方は、AIサイバー攻撃とは|中小企業の防御5手でも整理しています。
この記事の内容を社内で使うなら
要点と手順をまとめた資料を無料で受け取れます。研修6,000名以上・支援100社以上の実績をもとに、自社の業務に当てはめる相談も30分から受け付けています。
戻せるか:バックアップと復旧の準備
乗っ取りの被害で一番困るのは、「どこまで戻せばよいか分からない」「戻す先が無い」状態です。今回をきっかけに、次の4点を確かめておくと、最悪の場合でも戻す手順が決まった状態で動けます。
- ファイルとデータベースの両方を取っているか:WordPressは、画像やプラグインのファイルと、記事や設定のデータベースの両方が無いと戻せません。
- サーバーの外にも置いているか:同じサーバーの中だけのバックアップは、乗っ取られたときに一緒に消されたり書き換えられたりします。
- いつの時点まで戻せるか:侵入が疑われたら、侵入より前の時点のバックアップから戻し、PHPを更新してから公開し直します。毎日1回なら、最大で1日分の更新をやり直すことになります。
- 戻した後に替えるもの:管理者のパスワード、データベースのパスワード、wp-config.php の認証用キー(ソルト)、サイトに置いているAPIキーを替えます。
復旧の手順は、一度でも試しておくと当日に迷いません。年に一度の点検項目にしておくのがおすすめです。脆弱性を突いた攻撃への備えの全体像は、IPAの10大脅威をまとめた「情報セキュリティ10大脅威2026|AIリスク初選出と企業の対策」でも取り上げています。
よくある質問
Q. レンタルサーバーを使っています。自分で何かする必要はありますか?
A. PHPの更新そのものは事業者が行います。事業者のお知らせで更新の予定と完了を確かめ、管理画面で古い系列(8.1以前)を選んでいるなら、サポート中の系列に切り替えてください。更新までの間は、問い合わせフォームを止めてよいかを決めたうえで、.htaccess でmultipartを止める一時対策も取れます。
Q. WordPressのセキュリティプラグインで防げますか?
A. 防げません。この2件はPHP本体の不具合で、mod_phpではWordPressの処理が始まる前に攻撃が成り立ちます。直す方法はPHPの更新です。
Q. Ubuntuのサーバーで、PHPの版が 8.3.6 のままです。大丈夫ですか?
A. Ubuntuは修正を元の番号のまま取り込みます。24.04の php8.3 なら「8.3.6-0ubuntu0.24.04.13」以降が修正済みです。版の末尾まで見て確かめてください。
Q. 一時対策を入れれば、更新しなくてもよいですか?
A. いいえ。PHPの開発チームは「更新だけが完全な対策」「一時対策は特定の攻撃の経路を減らすだけで、安全にはしない」としています。更新までのつなぎとして使ってください。
Q. この脆弱性を狙った攻撃は、もう起きていますか?
A. 10月21日のIPAの注意喚起の時点では、IPAは悪用した攻撃を確認していません。一方でCloudflareは10月21日、公開前に情報が漏れ、同社の顧客を狙う攻撃の通信を観測したと公表しています。攻撃が始まっている前提で更新を急ぎ、最新の状況はIPAとJPCERT/CCの情報で確かめてください。
まとめ:今日やる3つのこと
- 自社サイトのPHPの版を確かめ、修正版(8.5.12・8.4.27・8.3.36・8.2.35、またはディストリビューションの修正パッケージ)になっているかを見る。
- レンタルサーバーなら事業者の更新状況を確かめ、更新までの間の一時対策(multipartを止めるか)を、問い合わせへの影響と合わせて決める。
- 入られていないかを確かめ、サーバーの外にあるバックアップから戻せるかを確かめる。
次に同じような緊急の更新が出た日の動き方は、WordPressの脆弱性対応|緊急の更新が出た日に最初にやることに5段でまとめています。
自社のサイトや社内のシステムに、AIの時代の攻撃も含めてどんな穴がありうるかを一通り点検したい方は、事例集と自社点検シートをまとめた「AIエージェント時代のサイバー攻撃 事例集と自社点検シート」も使ってください。
参考・出典
- PHP: Security advisory: Critical remote code execution vulnerabilities, update now/PHP 8.5.12・8.4.27・8.3.36・8.2.35 Released!/Upcoming Critical PHP Security Release(10月20日) — php.net(参照日:2026-10-21)
- RCE via OOM corruption(GHSA-w8hw-w9fx-j79w・CVE-2026-109618) — php/php-src(GitHub)(参照日:2026-10-21)
- RCE via stale global state(GHSA-6wmf-4rv5-p3rp・CVE-2026-109619) — php/php-src(GitHub)(参照日:2026-10-21)
- 【事前準備のお願い】PHPのセキュリティリリース公開予定について — IPA 独立行政法人 情報処理推進機構(公開日:2026-10-21・参照日:2026-10-21)
- CVE-2026-109618 — Ubuntu(参照日:2026-10-21)
- PHPの脆弱性(CVE-2026-109618 / CVE-2026-109619)に関する当社サービスへの影響について — KAGOYA(10月21日 18時20分更新の版・参照日:2026-10-22)
- PHPに深刻度「9.2」の脆弱性が2件発覚、サーバー乗っ取りの恐れで緊急パッチを10月21日に公開へ — GIGAZINE(2026-10-21・参照日:2026-10-22)
- Cloudflare deploys protections against php2shell vulnerability — Cloudflare(2026-10-21・参照日:2026-10-22)
- WAF Release – 2026-10-21 – Emergency – Cloudflare Free Ruleset — Cloudflare(参照日:2026-10-22)
この記事の内容を社内展開する方へ: 部門別 AIエージェント活用マップ 50選(無料・PDF 32ページ+Excel) をダウンロードできます。


