PHPの脆弱性情報まとめ

2026.11.01 22:23 更新 PHP本体と主なパッケージ(2026年の公表を中心に、KEV掲載の古いものを含む)

更新日別の件数直近14日・深刻度別

新規公表と更新直近14日

新規公表 18件 / 更新 10件

深刻度×脆弱性の種類押すと絞り込み

脆弱性の種類緊急高中低未評価
XSS・インジェクション15–1–
コード実行–22––
ファイルの読み取り・上書き–22––
サービス停止(DoS)–4–––
SSRF・リダイレクト––21–
認証・認可の回避–21––
メモリ破壊––––1
その他–––11

PHPの脆弱性は、PHP本体、Windows版の同梱ライブラリ、Composerで入れるパッケージ、WordPressのようなアプリで、確かめる場所が分かれます。11月1日時点で悪用が確認されたものと深刻度の高いもの、PHPのサポート期限、自分の環境が対象かを確かめる手順をまとめました。

このページの要点
  • PHP2Shell(CVE-2026-109618・109619)は悪用が確認されており、8.5.12・8.4.27・8.3.36・8.2.35への更新が対応です。8.1以前に修正版はありません。
  • Windows版は、10月26日の「-1」の版でBrotliが直ります。php -vの表示では見分けられません。
  • composer auditはパッケージだけを見ます。PHP本体は、Webで実際に動いているPHP-FPMやコンテナの版で確かめます。

01今確かめたいPHPの脆弱性

PHP本体、Windows版の同梱ライブラリ、よく使われるアプリ・パッケージのうち、米CISAのKEV(悪用が確認された脆弱性の一覧)に載ったもの、または深刻度が緊急のものです。11月1日に確かめた状態で書いています。

脆弱性・問題主な対象・条件修正・対応詳細
PHP2Shell(PHP本体)
CVE-2026-109618 / 109619
Webのリクエストを処理するPHP(PHP-FPM、Apacheのmod_php、php-cgiなど)。PHPの評価でCVSS 4.0の9.2。10月26日にKEVへ追加[1][2]8.5.12 / 8.4.27 / 8.3.36 / 8.2.35。8.1以前は修正版なしJPCERT/CCの注意喚起[3]、サービス停止まとめ
Windows版の同梱Brotli
CVE-2026-111497
cURLでHTTP応答の自動展開が有効なとき。GuzzleやWordPressは初期設定で有効。10月27日にKEVへ追加[1][2]8.5.12-1 / 8.4.27-1 / 8.3.36-1 / 8.2.35-1入れ替えと確かめ方
PHP-CGIの引数の注入(Windows)
CVE-2024-4577
WindowsでPHPをCGIとして動かし、日本語(コードページ932)などの環境。XAMPPの初期構成も対象。KEV掲載、ランサムウェアでの利用も記載[2][4]8.3.8 / 8.2.20 / 8.1.29以降。今のサポート版は修正済み提供元の告知[4]
WordPress本体のファイル読み込み
CVE-2026-87902
テーマに名前がpage-で始まるフォルダーがあり、読み込める.phpが置かれている場合など。CVSS 4.0の9.2。9月25日にKEVへ追加[2][5]7.1.2。古い系列は4.7系まで修正版あり(6.9.9など)提供元の告知[5]
Laravel Livewireのコード注入
CVE-2025-54068
livewire/livewire 3.0.0-beta.1〜3.6.3未満で、特定の形で組んだコンポーネント。CVSS 4.0の9.2。2026年3月20日にKEVへ追加[2][6]3.6.4以上提供元の告知[6]
LaravelのTokenGuardの認証回避
CVE-2026-114509
'driver' => 'token'のガードを使い、MySQL・MariaDBの一部の構成。CVSS 4.0の9.2。KEVには未掲載13.29.0 / 12.68.0(上げるなら13.30.0 / 12.69.0以上)Sanctumとの見分け方

PHP2Shellは、更新できないときの設定による緩和策をPHP公式が示していますが、どれも安全にするものではなく、更新だけが完全な対応だとしています。[1]JPCERT/CCは、悪用できると主張するPoC(検証用のコード)が多数公開され、悪用を試みる通信の観測も相次いでいるとして、更新に加えて侵害の有無の調査を呼びかけています。[3]

10月23日には、セッションのアップロード進捗に関わる別の問題(CVE-2026-115560)も公表されました。設定でsession.serialize_handlerをphp_binaryかphp_serializeにし、実行時にini_set()でphpへ切り替えるアプリが対象です。修正は次の通常リリースで行う方針で、それまではsession.upload_progress.enabled=0を勧めています。PHP2Shellの緩和策としてこの設定をすでに入れていれば、追加の対応は要りません。[1]

PHP2Shell サービス停止まとめ 2026年10月の表紙
資料(無料)PHP2Shell サービス停止まとめ 2026年10月国内92件の停止・メンテナンスの告知を分析し、止める判断・告知の書き方・確認の手順をまとめた資料です。

02PHPのサポート期限と更新先

PHP公式がサポートしているのは8.2〜8.5の4系列です。8.2のセキュリティ修正は2026年12月31日に終わります。[7]

系列セキュリティ修正の終了11月1日時点の最新版今上げる先
8.52029年12月31日8.5.12(Windows版は8.5.12-1)8.5.12以上
8.42028年12月31日8.4.27(Windows版は8.4.27-1)8.4.27以上
8.32027年12月31日8.3.36(Windows版は8.3.36-1)8.3.36以上
8.22026年12月31日8.2.35(Windows版は8.2.35-1)8.2.35に上げ、年内に8.3以上へ移る
8.12025年12月31日(終了)8.1.348.2以上へ移る
8.0 / 7.42023年11月26日 / 2022年11月28日(終了)8.0.30 / 7.4.338.2以上へ移る

8.1以前には、PHP2Shellの修正版は出ていません。PHP公式は7.4・8.0・8.1向けに最小限のソースの修正を用意していますが、リリースではありません。8.6.0は開発中の版(RC4)で、本番での利用は控えるよう告知されています。[1][8]

OSの配布元(Linuxのディストリビューション)や長期サポートの事業者は、事前に修正を受け取っていたとPHP公式は説明しています。これらのPHPは配布元のパッケージで更新します。[1]

03PHPの依存関係の脆弱性を確かめる方法

PHPのパッケージの脆弱性は、Composerのcomposer auditで確かめます。Packagist.orgのセキュリティアドバイザリと照らし合わせ、見つかれば終了コード1を返します。composer updateやcomposer requireも、実行のたびに同じ確認をします。[9]

ターミナル
composer audit
composer audit --locked --no-dev
composer audit --format=json

--lockedはvendorフォルダーではなくcomposer.lockを見て確かめます。--no-devは開発用の依存(require-dev)を外します。[9]ある脆弱なパッケージを、どのパッケージが引き込んでいるかはcomposer whyで確かめます。

ターミナル
composer why livewire/livewire --tree
composer show laravel/framework

composer auditは、PHP本体、Windows版の同梱ライブラリ、Composer以外で入れたWordPressの本体やプラグインを確かめません。PHP本体の版と、cURLが使うBrotliの版は、次のように確かめます。

ターミナル
php -v
php -r "var_dump(curl_version()['brotli_version'] ?? null);"

04自分の環境が対象かを確かめる進め方

  1. 実際にリクエストを処理しているPHPを見る:ターミナルのphpと、PHP-FPMやApacheのmod_phpが同じとは限りません。php-fpm -v(環境によってはphp-fpm8.3 -vなど)や、管理者だけが開ける場所に置いたphpinfo()で、Webで動いている版と設定を確かめます。更新した後は、PHP-FPMやApacheを再起動するまで古い版が動き続けます。
  2. コンテナは本番のイメージで確かめる:docker run --rm <イメージ> php -vのように、本番で動かしているイメージそのものを確かめます。手元で作り直したイメージは、基のイメージの更新で版が変わっていることがあります。
  3. OSの配布元のPHPは番号だけで決めない:配布元は修正を古い番号のパッケージに取り込むことがあります。配布元のセキュリティ告知やパッケージの更新履歴で、CVE番号を探します。JPCERT/CCも、PHPを組み込んだ製品やディストリビューションのPHPが影響を受けうるとしています。[3]
  4. Windows版は「-1」を確かめる:php -vの表示は8.5.12のままなので、Brotliの版(1.2.1か)で見分けます。
  5. 緩和策の設定は効く場所に書く:PHP公式は、PHP2Shellの緩和策をphp.iniやFPMのプール、サーバーの設定に書き、すべてのワーカーを再起動するよう案内しています。ini_set()やFPMの.user.iniには頼らないとしています。[1]
  6. lockファイルと間接依存:composer.lockをリポジトリに入れ、本番ではcomposer installでその内容どおりに入れます。Livewireのように、直接書いていないパッケージが引き込んでいることもあるので、composer auditは間接依存まで見る既定のまま使います。[9]

PHP2Shellで侵害を受けていないかは、JPCERT/CCが挙げる痕跡(不自然に長いPHPSESSIDのCookie、不審なmultipart/form-dataのリクエストと前後のメモリ上限のエラーやHTTP 500、ワーカーの異常終了)でログを確かめます。痕跡が見つからなくても、攻撃を受けていないとは言い切れないとしています。[3]国内の各サービスの停止・緊急メンテナンスの告知は、PHP2Shell サービス停止まとめに原資料へのリンクとともにまとめています。停止の記録だけでは、被害の有無は分かりません。

05PHPの解説記事

PHP公表 2026-10-26

PHPのWindows版のBrotliの脆弱性、8.5.12-1などへの入れ替えとcURL・Guzzleの確かめ方(CVE-2026-111497)

PHPのWindows版に同梱のBrotliの脆弱性CVE-2026-111497は、米CISAが悪用を確認しています。10月21日の版も対象のままである理由、GuzzleやWordPressで自動展開が有効になる条件、8.5.12-1などへの入れ替えと確かめ方を説明します。

PHP公表 2026-10-19

LaravelのTokenGuardに認証回避の脆弱性、MySQL・MariaDBの一部の構成で他人として認証されるおそれ。Sanctumとの見分け方と11系以前の扱い

Laravelの脆弱性CVE-2026-114509は、TokenGuardで守るAPIに文字列でない値を送ると、MySQL・MariaDBの一部の構成で既存の利用者として認証されるおそれがあります。自社がTokenGuardかSanctumかの見分け方、12.69.0・13.30.0以上への上げ方、サポートが終わった11系以前の扱いを説明します。

セキュリティ対策サービス一覧AIを悪用した攻撃への対策について、相談、リスクの診断、システムの改修を支援します。必要なものだけを選んで依頼できます。

よくある質問

サーバーでphp -vを実行したら8.3.36でした。PHP2Shellは直っていますか?

ターミナルのphpが直っていても、Webを処理しているPHP-FPMやmod_phpが別の版のことがあります。php-fpm -vやphpinfo()で確かめ、更新後にPHP-FPMやApacheを再起動したかも見ます。

CentOSやRHELのPHPで、版の番号が8.2.35より古く表示されます。対象ですか?

配布元は修正を古い番号のパッケージに取り込むことがあるため、番号だけでは決められません。配布元のセキュリティ告知やパッケージの更新履歴でCVE-2026-109618・109619を探します。

composer auditで何も出なければ、PHPの脆弱性はないと考えてよいですか?

composer auditが見るのはComposerで入れたパッケージです。PHP本体、Windows版の同梱Brotli、Composerを使わずに入れたWordPressやプラグインは、別に確かめます。

出典・参考資料

  1. PHP公式:2026年の告知アーカイブ2026-10-21・23・26 / PHP2Shellの修正版・対象・緩和策、CVE-2026-115560の条件と設定、Windows版の-1、8.1以前の扱い、8.6.0 RC4
  2. 米CISA:Known Exploited Vulnerabilities Catalog(JSON版 2026.10.30)2026-11-01確認 / CVE-2026-109618・109619(10月26日)、CVE-2026-111497(10月27日)、CVE-2026-87902、CVE-2025-54068、CVE-2024-4577の掲載
  3. JPCERT/CC:PHPにおける複数の脆弱性に関する注意喚起2026-10-29更新 / PoCの公開と悪用の観測、組み込み製品・ディストリビューションへの影響、侵害の調査の観点
  4. PHP公式:GHSA-3qgc-jrrr-25jv(CVE-2024-4577)2024-09-28(GitHubでの公開) / Windows・CGI・コードページ932などの条件、XAMPP、修正版
  5. WordPress:GHSA-7hp8-65ch-5whp(CVE-2026-87902)2026-09-22 / 成立条件、系列ごとの修正版、CVSS 4.0 9.2
  6. Livewire:GHSA-29cq-5w36-x7w3(CVE-2025-54068)2025-07-17 / 対象の版、修正版3.6.4、CVSS 4.0 9.2、回避策の記載なし
  7. PHP公式:Supported Versions2026-11-01確認 / 8.2〜8.5のセキュリティ修正の終了日
  8. PHP公式:Unsupported Branches2026-11-01確認 / 8.1・8.0・7.4の終了日と最後の版
  9. Composer公式:Command-line interface(audit・depends)2026-11-01確認 / composer auditのオプション・終了コード・参照先、update等での自動の確認、why