PHP脆弱性 CVE-2026-109618|誰が直す?更新と確認

PHP脆弱性 CVE-2026-109618|誰が直す?更新と確認 AI活用
サイト運営者向け速報

PHPの重大な脆弱性
確認と更新の手順

2026年10月21日に公開された修正版について、対象範囲・危険度・誰が直すのか・更新できないときの緩和策を、PHP公式の告知とGHSAの原文で整理しました

2026年10月21日、PHPの開発チームが、「ログイン不要で、外部からサーバー上のプログラムを実行されるおそれがある」重大な脆弱性2件の修正版を公開しました。

PHPは、WordPressをはじめ、多くのWebサイトや業務システムの土台になっている言語です。修正前のPHPで動いているサービスは、危険度が非常に高い状態です。自社のWordPressサイト、レンタルサーバーに置いた業務システム、制作会社に作ってもらった予約フォームなどが、心当たりになるはずです。

ここで難しいのは、PHPを直せるのは、そのPHPを管理している人だけという点です。WordPressの管理者でも、レンタルサーバーの契約者でも、PHP本体は自分では直せません。「誰が直すのか」が分からないと、誰に何を聞けばよいかも分からなくなります。

この記事は、PHP公式の告知とGHSA(公式の脆弱性情報)の原文をもとに、何が起きたのか、どこまでが対象か、誰が直すのか、いま自分で確かめられることは何かを順に説明します。筆者は経理・税務の実務者で、セキュリティの専門家ではありません。技術的な詳細はGHSAに任せ、ここでは運営者が判断するための要点に絞ります。
⚠ この記事の前提(2026年10月21日時点)
  • 根拠/PHP公式サイトの告知「Security advisory: Critical remote code execution vulnerabilities, update now」(2026年10月21日付)と、脆弱性情報のGHSA-w8hw-w9fx-j79w・GHSA-6wmf-4rv5-p3rpです。対応状況は日々変わるため、最新の情報は公式で確かめてください
  • 扱う範囲/PHP本体の脆弱性(CVE-2026-109618とCVE-2026-109619)です。サーバー会社のうち、確認できたのはエックスサーバーの案内(POINT 03)だけです。ほかのサーバー会社や、業務ソフトごとの対応状況は確認できていません。契約している会社の公式のお知らせで確かめてください
  • 被害の状況/公式の告知には、実際の被害の有無や件数は書かれていません。書かれているのは、攻撃が成り立つことを公式が確認した、という点です
  • 公式の告知にない部分/「誰が直すのか」(POINT 03)と、更新後の確認(POINT 06)は、サイト運営の一般的な実務に基づく筆者の整理です。各項目にもそう書いています
✓ 先に結論
① 修正前のPHPで動いているサービスは、危険度が非常に高い状態です。深刻度は2件とも10点満点中9.2(Critical)で、ログインも利用者の操作も要りません。WordPressなど、PHPで作られたサービスは対象です。

② PHPを直せるのは、PHPを管理している人だけです。レンタルサーバーなら運営会社、制作会社に作ってもらったものなら開発先、自社で運用しているなら自社です。WordPressの管理画面からは、PHPは更新できません。

③ 修正版は4つです。PHP 8.5.12、8.4.27、8.3.36、8.2.35です。PHP 8.1以前は、PHPプロジェクトからの修正版が出ません。

④ 公式は「完全な緩和策はない。更新だけが安全」としています。更新できないときの対策も示されていますが、環境が安全になるわけではありません。

⑤ ただし、「今すぐすべてのサイトが破られる」という意味ではありません。GHSAは攻撃の難しさを「高」と評価し、成功のしやすさは環境で変わるとしています。それでも、公式が「直ちに更新」を求める水準で、様子見をしてよい状態ではありません。
POINT01
何が起きたのか
メモリの扱いの不具合を突かれ、ログイン不要でプログラムを実行されるおそれがあります

公式の告知が挙げているのは、次の2件です。どちらも、公式は「認証なしのリモートコード実行(RCE)につながりうる」としています。

  • CVE-2026-109618/PHPは、メモリ不足になると処理を途中で打ち切ります。そのとき、メモリが「準備の途中」だと、壊れた状態のまま残り、後片付けの処理がそれを読んでしまいます
  • CVE-2026-109619/1回のリクエストが使ったメモリを片付けたあとも、その場所を指す記録だけが残ります。次のリクエストが、その古い記録を使ってしまいます。GHSAは、これを解放後利用(Use After Free)と呼んでいます

どちらも、メモリの扱いの不具合を突かれる問題です。壊れたメモリや、片付け済みのメモリを使わせることで、攻撃者の用意した命令を動かせてしまうおそれがあります。GHSAが確認している影響は、ログイン不要でのコード実行(2件とも)と、メモリの内容の漏れ(2件目)です。

用語を整理します。

  • リモートコード実行(RCE)/外部の第三者が、狙われたサーバー上で、自分の用意したプログラムを動かせてしまう状態です。脆弱性のなかでも、特に深刻なものに分類されます
  • 認証不要/ログインしていない相手でも攻撃が成立する、という意味です。管理画面のパスワードを強くしても、これは防げません
  • CVSS(深刻度の点数)/脆弱性の深刻さを10点満点で示す世界共通の物差しです。GHSAは、2件ともCVSS v4.0で9.2(Critical)としています。ネットワーク越しに攻撃でき、ログインも利用者の操作も要りません
  • ワーカー/Webからのリクエストを実際に処理するPHPの担当(プロセス)です。サーバーには複数のワーカーが並んでいます
  • CVE番号/脆弱性に付く世界共通の管理番号です。業者やサーバー会社への問い合わせでは、この番号を伝えると話が早くなります
⚠ 「何でもできる」わけではないが、手が届く範囲は広い
GHSAによると、実行されるのはワーカーのアカウントの権限の範囲です。サーバー全体の管理者権限、とまでは書かれていません。ただし、そのPHPが読み書きできるファイル(サイトのプログラム、設定ファイル、アップロードしたファイルなど)には、攻撃者の手が届くおそれがあります。

レンタルサーバーで、1つのアカウントに複数のサイトを置いている場合は、同じ権限で動いていることが多いため、1つのサイトの問題が、同じアカウントの他のサイトに及ぶおそれもあります。(後半は公式の記述ではなく、一般的な構成にもとづく見方です)
POINT02
どこまでが対象か、どれほど危険か
Webのリクエストを処理するPHPは、すべて対象です。環境によって危険度は違います

公式の告知は、対象を「Webのリクエストを処理するすべてのPHP環境」としています。具体例として、次の5つが挙がっています。

  • PHP-FPM/PHPを別の処理担当として動かす方式です
  • Apache + mod_php/WebサーバーのApacheにPHPを組み込む方式です
  • php-cgi/リクエストのたびにPHPを起動する古い方式です
  • FrankenPHP/新しいPHP用のサーバーです
  • LiteSpeed/高速なWebサーバーです

公式は、このうちmod_phpのリスクが最も高いとしています。認証なしのリクエストが、アプリケーションのコードが動く前に攻撃を発動できることが実証されているためです。GHSAは、初期設定のメモリ制限などの環境でも、完全なコード実行が確認されたと書いています。

方式による違いは、GHSAに次のように書かれています。

  • FPM/1件目は、ソースの分析上は影響を受けるが、完全な攻撃はまだ実証されていません。2件目の「セッション経路」は、mod_phpとFPMの両方で実証されています
  • FrankenPHP・LiteSpeed/FrankenPHPは影響を受けやすいとみられています。LiteSpeedは、攻撃が成り立つ可能性が高いものの、未検証とされています
⚠ 危険度は「非常に高い」。ただし「全部が今すぐ破られる」ではない
GHSAは、攻撃の複雑さを「高」と評価しています。成功のしやすさは、PHPの作り方、拡張機能、手前のサーバー、メモリの配置などで変わります。ワーカーが複数あると、1回あたりの成功率は下がりますが、条件がなくなるわけではないとも書かれています。

つまり、環境によって難しさは違います。しかし、実際にコード実行ができることは確認されていて、公式は「直ちに更新」を求めています。様子見をしてよい水準ではありません。
⚠ WordPressを最新にしても直りません
今回の告知は、WordPressではなくPHP本体の修正です。WordPress本体やテーマ、プラグインを最新にしても、土台のPHPが修正版でなければ、この脆弱性は残ります。反対に、PHPが修正版になれば、WordPress側で何かを変える必要は(告知上は)ありません。
PHPで動いているサービスは、身近にある

次のようなものは、PHPで動いていることがあります。

  • WordPressで作ったサイト/自社サイト、ブログ、採用ページなど
  • 制作会社が作ったサイト・フォーム/ネットショップ、予約フォーム、会員サイトなど。作り方は会社によって違います
  • 業務システム/請求書発行、見積、在庫、勤怠、経費精算など。PHPで作られているものがあります

PHPで動いているかどうかが分からないときは、次のPOINT 03のとおり、管理している相手に聞くのが確実です。

POINT03
誰が直すのか(立場別)
PHPを直せるのは、そのPHPを管理している人だけです。ここは筆者の整理です

PHP本体を修正版にできるのは、そのPHPを管理している人だけです。WordPressの管理画面の「更新」ボタンは、WordPress本体・テーマ・プラグインの更新用で、PHPは更新できません。まず、自分のサイトやシステムが、次のどれに当たるかを確かめます。なお、ここは公式の告知ではなく、一般的な契約や運用の形にもとづく整理です。

レンタルサーバーに置いたサイト(WordPressなど)
  • 誰が直すか/サーバーの運営会社です。多くの共用型のレンタルサーバーでは、PHP本体を修正版にできるのは運営会社だけで、利用者は触れません。利用者が触れるのは、運営会社が管理画面に用意した範囲(PHPのバージョンの切り替えなど)に限られます
  • あなたがやること/運営会社のお知らせ(障害・メンテナンス情報)を確かめます。運営会社が「修正済みのバージョンを選べる」と案内したら、その手順に従って切り替えます。案内が出るまでは、POINT 06のバックアップを取って待ちます
  • 注意/POINT 05の緩和策は、利用者が設定を変えられないことが多く、使えない場合があります
✓ 例:エックスサーバーの案内(2026年10月22日1:10時点)
  • 公式サイト・管理画面の停止/予防的な安全対策として、2026年10月21日16:00から、公式サイトやサーバーパネルなどを一時停止しています。不正アクセスの発生に伴うものではない、と案内されています
  • 契約中のサーバー/稼働は続いていて、Webサイトの表示やメールの送受信は通常どおり使えます。修正版の公開前から、緩和策を含む安全対策を順次適用しているとのことです
  • 修正の適用/公式の修正版が出ているPHP 8.2〜8.5から、順次、適用を始めています。公式の修正版がない古いバージョンは、独自の修正を作成中で、時間がかかる見込みとされています
  • 利用者への依頼/管理画面の再開後に、利用者に追加の対策をお願いする場合があるとのことです
出典:エックスサーバー公式サイトのお知らせ「メンテナンスの進捗状況について」。対応状況は更新されるため、最新の案内は同社の公式サイトで確かめてください。
制作会社・開発会社に作ってもらったサイト・システム
  • 誰が直すか/サーバーを開発会社が契約しているなら開発会社、自社が契約していて保守を頼んでいるなら、保守の委託先です。誰が管理しているか分からないときは、契約書や請求書で確かめます
  • あなたがやること/開発先に問い合わせます。「CVE-2026-109618とCVE-2026-109619への対応状況と、対応する予定日を教えてください」と聞きます。あわせて、この対応が保守契約の範囲に入るのか、費用がかかるのかも確かめます
  • 注意/PHPのバージョンを上げると、古いプログラムが動かなくなることがあります。その場合は改修が必要になり、対応に時間がかかることがあります。いつまでに対応できるのかを、必ず聞いておきます
自社(情報システム担当)でサーバーを運用している
  • 誰が直すか/自社です。クラウド上の仮想サーバーやVPSを借りている場合も、中のPHPの更新は、借りた側の作業になるのが一般的です
  • あなたがやること/公式は、Linuxの提供元や長期サポートの業者には、パッチが事前に提供されたと書いています。提供元の更新済みパッケージを確かめて更新し、必要に応じてサービスを再起動します
  • 注意/PHP 8.1以前を使っている場合は、提供元がバックポートを出しているかを確かめます(POINT 04)
クラウドサービス(SaaS)を使っている
  • 誰が直すか/サービスの提供元です。利用者は、PHP本体を直せません。そのサービスがPHPを使っているかどうかも、利用者には分からないことがあります
  • あなたがやること/提供元のお知らせを確かめます。対応状況が書かれていなければ、問い合わせます。利用者側でできる、パスワードの変更などは進めておきます(POINT 06)
どれに当たるか分からないとき(経理にできること)
  • 請求書をたどる/サーバーの利用料、ドメインの更新料、保守費の請求書は、経理に届いているはずです。支払先が、サーバーの運営会社なのか、制作会社なのかで、誰が管理しているかが分かります
  • 一覧にする/自社のサイトやシステムを、「名前・URL・管理している先・PHPのバージョン・対応状況」の表にします。Excelで十分です。管理している先ごとに、まとめて問い合わせられます
⚠ 利用者が直せない以上、待つ時間が生じます
レンタルサーバーや開発先に任せている場合、PHPを直せるのは相手です。対応の連絡が来るまで、待つ時間が生じます。その間にできることが、POINT 05(緩和策の確認)と、POINT 06(バックアップなどの備え)です。
POINT04
修正版の番号と、自分のPHPの確かめ方
修正版は4つ。8.1以前は、PHPプロジェクトからの修正版が出ません
修正版の番号

公式が示した修正版は、次のとおりです。GHSAは、影響を受ける版を「それぞれの修正版より前」としています。

  • PHP 8.5/8.5.12に更新
  • PHP 8.4/8.4.27に更新
  • PHP 8.3/8.3.36に更新
  • PHP 8.2/8.2.35に更新
PHP 8.1以前は、PHPプロジェクトから修正版が出ない

公式は、PHP 8.1以前は、PHPプロジェクトからの更新の提供が終わっていると明記しています。ただし、次の2つの道があります。

  • 提供元のバックポート/Linuxの提供元や、長期サポートを売る業者が、修正を古い版に取り込んで配っていることがあります。契約先に、対応の有無を問い合わせます
  • 移行/サポート対象のバージョン(8.2以降)に上げます。古いプラグインやテーマが動かなくなることがあるため、事前にバックアップを取り、動作確認の時間を取ります

公式は、PHP 7.4・8.0・8.1向けにも、修正を移した最小限のソース(バックポート)を公開しました。古い版も、同じ問題を抱えていると考えるのが自然です(筆者の読みです)。ただし、これはソースからビルドする知識のある人向けで、レンタルサーバーの利用者が自分で当てるものではありません。

⚠ PHP 8.2は、今回は修正されるが、期限が近い
PHP公式の「Supported Versions」では、8.2のセキュリティサポートは2026年12月31日までです。今回の8.2.35は受けられますが、その後は修正版が出ません。8.2を使っている場合は、年内を目安に8.3以降への移行を計画しておくと安心です。(8.3は2027年12月31日、8.4は2028年12月31日、8.5は2029年12月31日までです)
自分のPHPのバージョンの見方

サーバー会社の管理画面(サーバーパネル)が開けないときでも、WordPressを使っているなら、WordPressの管理画面からPHPのバージョンを確かめられます。

  • 手順/管理画面の「ツール」→「サイトヘルス」→「情報」タブ→「サーバー」の欄に、PHPのバージョンが表示されます
  • 見方/表示された番号を、上の修正版と見比べます。たとえば8.3系なら、8.3.36以上であれば修正版です
⚠ 番号が小さくても、直っていることがある
提供元は、バージョンの番号を変えずに、修正だけを取り込んでいる場合があります。表示された番号が修正版より小さくても、直ちに「未対応」とは限りません。番号だけで決めつけず、サーバーの運営会社や開発先に確かめるのが確実です。
  • 聞くこと/「私のサーバーのPHPには、CVE-2026-109618とCVE-2026-109619の修正は適用されていますか。まだなら、いつ適用されますか」
  • 手元に用意するもの/契約しているサーバーの名前、使っているPHPのバージョン、対象のドメイン
POINT05
すぐに更新できないとき
公式が示した緩和策は、「安全になる」ものではありません

公式は、すぐに更新できない場合の緩和策も示しています。ただし、次のように明記しています。

⚠ 公式の注意書き(要旨)
更新だけが完全な解決策であり、以下の対策は特定の攻撃経路への露出を減らすだけで、環境を安全にするものではない。また、完全な緩和策はなく、更新だけが安全な選択である。
CVE-2026-109618(メモリ不足の処理)向け
  • memory_limit=-1にする/PHPのメモリ上限を外します。アプリケーション側で上限を戻されない設定(FPMのプール設定やApacheのphp_admin_valueなど)が望ましいとされています。ただし、公式は、根本的なメモリ確保の失敗は脆弱な経路に到達しうると書いています
  • post_max_sizeを小さくする/ファイルのアップロードが不要なら8M、必要なら32Mにします。upload_max_filesizeはpost_max_sizeより小さくします
  • Webサーバー側でも制限する/リクエストの大きさ、入力欄の数、ヘッダーの数などの上限を、Webサーバーやプロキシでも設けることを検討します
  • フォーム形式の通信を手前で断る/GHSAは、アプリケーションが「multipart形式」(ファイルのアップロードなどに使う送信形式)を使わないなら、その通信をPHPに届く前にWebサーバーで断ることも挙げています。WordPressは、画像のアップロードなどでこの形式を使うため、そのまま断ると管理画面の機能が止まることがあります
CVE-2026-109619(古い状態が残る)向け
  • session.upload_progress.enabled=0にする/アップロードの進み具合を記録する機能を切ります。設定したあとは、すべてのワーカーの再起動が必要です
  • PHP 8.5ではfatal_error_backtraces=0にする/致命的エラー時の追跡情報の出力を止めます。確認された経路だけをふさぎます
  • 攻撃者が届く致命的エラーや実行時間切れを直す/アップロードや取り込みの処理の失敗などが対象です
✕ 公式が「頼るな」としている対応
  • NGsession.upload_progress.enabled=0を、ini_set()やFPMの.user.iniで設定して済ませる(リクエストの解析より前に効く、php.iniなどの設定が必要)
  • NGメモリの制限を、RLIMIT_ASやRLIMIT_DATAで代用する(脆弱なメモリ確保の失敗を、かえって起こすことがある)
  • NGerror_reportingやdisplay_errors、@で、エラーの表示を隠して済ませる(効果がない)
  • NG緩和策を入れたから更新は後回しでよい、と判断する(緩和策では安全にならない)

レンタルサーバーでは、これらの設定を利用者が自由に変えられないことが多いと思います。しかも、レンタルサーバーで使える.user.iniは、上のとおり公式が「頼るな」としている方法です。設定で粘るより、運営会社の更新の連絡を待つほうが、現実的な選択になる場合があります。

✓ 一般的な考え方(公式の告知にはありません)
  • 使っていない古いサイトは閉じる/テスト用や、放置されたままのサイトは、更新されないまま残りやすく、今回に限らず狙われやすい存在です。この機会に、削除するか、アクセスできないようにします
  • 止めても困らないものは、対応が済むまで止める/サーバーの管理画面でアクセスを断てる場合は、PHPに届く前に止められるため、攻撃の入口を減らせる場合があります。運営会社の案内に従ってください。止めている間は、サイトが見られなくなる点に注意します
  • 業務で使うものは、止めたときの代わりを決める/問い合わせ窓口やお知らせを、別の連絡手段に切り替えられるようにしておきます
POINT06
更新のあとにやっておくこと
ここからは公式の告知ではなく、サイト運営での一般的な確認事項です

PHPが修正版になっても、更新の前に、すでに侵入されていた場合は直りません。念のため、次の点を確かめておくと安心です。なお、これらは公式の告知が求めている手順ではなく、サイトを運営するうえでの一般的な確認です。

✓ 確認しておくこと
  • バックアップを手元に取る/サーバー内だけに置いたバックアップは、サーバーごとやられると失われます。管理画面のバックアップ用プラグインなどで、手元のパソコンにも保存します。サーバー会社の自動バックアップは、保管期間が限られ、完全性は保証されないとされています
  • 管理者のユーザーを見直す/WordPressの管理画面の「ユーザー」で、見覚えのない管理者が増えていないか確かめます
  • プラグインとテーマを見直す/身に覚えのないプラグインや、使っていないものが残っていないかを確かめます。使っていないものは削除します
  • 公開ページを見直す/トップページや問い合わせページに、身に覚えのない文章・リンク・広告が出ていないかを確かめます
  • パスワードを変える/WordPressの管理者、サーバーの管理画面、FTPなどです。使い回しがあれば、この機会に分けます
  • 同じアカウントの他のサイトも見る/1つのアカウントに複数のサイトを置いている場合は、1つだけでなく、すべてを確かめます
  • 対応の記録を残す/いつ、誰が、どのバージョンに更新したのかを、運営会社や開発先からメールなどの文面でもらい、保管します。取引先や監査から聞かれたときに、説明できます

不審な点が見つかったときは、自分で直そうとして上書きせず、まず運営会社と、サイトを作った業者に相談します。会計データや取引先の情報を扱っているサイトであれば、専門の業者の判断を仰ぐ場面も考えられます。

まとめ:修正前のPHPは危険度が非常に高い。まず「誰が直すのか」を確かめる
POINT 01
メモリの不具合を突かれ
→ ログイン不要でコード実行のおそれ
POINT 02
PHP製のサービスは危険度が非常に高い
→ WordPressを最新にしても直らない
POINT 03
PHPを直せるのは管理者だけ
→ レンタルは運営会社、制作物は開発先へ
POINT 04
修正版は8.5.12・8.4.27・8.3.36・8.2.35
→ 8.1以前は提供元に確認
POINT 05
緩和策では安全にならない
→ .user.iniは頼れない
POINT 06
更新後はバックアップと見直し
→ 管理者・プラグイン・対応の記録
本記事は、PHP公式サイトの告知(2026年10月21日付)、GHSA(GHSA-w8hw-w9fx-j79w・GHSA-6wmf-4rv5-p3rp)および「Supported Versions」のページをもとに、2026年10月21日時点の情報で作成しています。エックスサーバーの対応は、同社公式サイトの案内(2026年10月22日1:10時点)によります。「誰が直すのか」と更新後の確認は、一般的な契約や運用の形にもとづく筆者の整理で、公式の記述ではありません。対応状況は変わる可能性があるため、最新の情報はPHP公式と、ご契約のサーバー会社や開発先の案内でご確認ください。個別のサイトやシステムの診断は、運用を任せている業者や、セキュリティの専門家にご相談ください。本記事は一般的な情報提供を目的としており、特定の事案への助言ではありません。
タイトルとURLをコピーしました