PHPにCVSS 9.2の脆弱性2件「php2shell」— 確認できた事実と対応手順
PHPにCVSS 9.2の脆弱性2件「php2shell」— 確認できた事実と対応手順
2026年10月21日 14:00 UTC(日本時間23:00)、PHPに認証不要のリモートコード実行につながる脆弱性2件の修正版が公開されました。 修正版バージョン、影響範囲、PHP 8.1環境の扱い、公式が示す緩和策を、確認できた一次情報だけをもとに整理します。
mod_php のリスクが高いとしています。
アプリケーションコードが動き出す前に攻撃が成立する経路が実証されています。
出典:PHP公式アドバイザリ(2026年10月21日)
修正版が提供された系列
PHP 8.1 以前はPHPプロジェクトのサポート対象外のため、通常の修正版は提供されません。
確認できている事実
- 2026年10月21日 14:00 UTC(日本時間23:00)、深刻度 CVSS v4.0 = 9.2 の脆弱性2件に対する修正版が公開された。
- 修正版は PHP 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35。対象は PHP-FPM、Apache + mod_php、php-cgi、FrankenPHP、LiteSpeed など、Webリクエストを処理する構成。
- 影響範囲は PHP 5.4 以降。Wizは「過去10年にリリースされたすべてのPHPバージョンが、少なくとも一方の脆弱性の影響を受ける」としている。
- PHP 8.1 以前には修正版が提供されない。PHPチームは 7.4 / 8.0 / 8.1 向けに最小限のソースバックポートを公開した。
- 公式の見解は「完全な緩和策はなく、アップデートが唯一の安全な選択肢」。緩和策はいずれも特定の攻撃経路への露出を減らす措置。
- WordPressの本体・プラグイン更新だけでは修正されない。PHP本体の更新が必要。
サポート期限の現在地
修正版が出た系列と、修正版が出ない系列。判断を分けるのは「サポートがいつ終わるか」です。 各系列は最初の安定版リリースから2年間が完全サポート、その後2年間がクリティカルなセキュリティ修正のみの期間となります。
SUPPORT HORIZON
各系列のサポート期間と終了日。軸は2023年1月〜2030年1月。8.1は軸左端より前から提供されていたため左端で切っています。
8.2 の修正版 8.2.35 は提供されていますが、セキュリティサポートは 2026年12月31日 で終了します。 8.1 からの移行先を検討する場合、この期限を踏まえた判断が必要です。
時系列
| 日時 | 出来事 | 出典 |
|---|---|---|
| 10/20(米国時間) | PHPプロジェクトが「10月21日 14:00 UTC に緊急セキュリティリリース」を事前告知。CVSS v4.0 で 9.2 と明示 | PHP公式 |
| 10/21 03:02 UTC | Cloudflare が php2shell に対する WAF 保護を全プラン(無料含む)で既定有効化 | Cloudflare |
| 10/21 14:00 UTC (JST 23:00) |
PHP 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 を公開。公式が「全てのPHPユーザーは直ちにアップデートを」と告知 | PHP公式 |
| 10/21 16:00〜 10/22 12:00(予定) |
厚生労働省「介護サービス情報公表システム」を一時停止 | 山口県の掲載内容 |
| 10/21 23:00ごろ〜 | 国内各社が予防措置として緊急メンテナンスを実施 | ファミ通 / ITmedia |
補足:Cloudflareは「公式リリース前に脆弱性が漏えいし、顧客に対する攻撃トラフィックを観測した」と述べています。 漏えいの経緯について一部報道は海外掲示板への投稿を挙げていますが、当社では一次確認できていません。
脆弱性の中身
通称 php2shell。2件はいずれも、PHPがリクエスト処理中にエラー(特にメモリ不足)へ陥った際の後始末に起因するメモリ安全性の問題です。
RCE via OOM corruption
メモリ不足(OOM)の処理が、リクエストの内部データが部分的にしか初期化されていない段階でPHPを中断させる。その後のリクエスト終了処理が、無効なデータを有効なものとして扱ってしまう。
RCE via stale global state
リクエストが所有していた内部状態が、その背後のメモリが解放された後も残る。同じワーカーが処理する後続のリクエストが、通常の初期化でリセットされる前にその古い状態を使用してしまう。
出典:PHP公式アドバイザリ / GHSA-w8hw-w9fx-j79w / GHSA-6wmf-4rv5-p3rp
Wizが実証した内容
Wizは、WordPress・Drupal・Joomla の最新コンテナイメージに対して認証不要のリモートコード実行を実証したとしています。 あわせて、コード実行を伴わないプロセスメモリの読み出し(パスワード、トークン、APIキー、証明書を含み得る)も実証しています。 同社は「アプリケーション側の欠陥ではなくPHP本体の問題であり、単純なアプリケーションでも影響し得る」と説明しています。
すべてのPHPサイトが1回の通信で侵害されるわけではありません。攻撃の成立条件は SAPI(mod_php か PHP-FPM か等)と構成に依存すると報じられています。
一方で mod_php については、アプリケーションコードの実行前に認証なしのリクエストで攻撃が成立する経路が実証されています。
PHP 8.1 環境の選択肢
PHP 8.1 は 2025年12月31日 にサポートが終了しており、通常の修正版は提供されません。 公式アドバイザリに記載されている選択肢は次の3つです。
| 選択肢 | 内容 | 前提 |
|---|---|---|
| ベンダーのバックポートを待つ | ディストリビューションやLTSベンダーが提供する修正パッケージを適用する | 提供時期はベンダー次第 |
| ソースバックポートを適用する | PHPチームが公開した 7.4 / 8.0 / 8.1 向けの最小限のソースバックポートを自前でビルドして適用する | ビルド・検証の工数が必要 |
| サポート中の版へ移行する | 8.2 以降へ移行する | 8.2 は 2026年12月31日 で終了 |
出典:PHP公式アドバイザリ / PHP EOL一覧
ボランティア運営の rpms.remirepo.net を利用している場合、同リポジトリは当日中に更新を提供しないと公式が明言しています。ディストリビューションのパッケージへ切り替えるか、ソースからビルドするよう求めています。
国内の影響(確認できた事例)
各社の発表は「予防措置としての緊急メンテナンス」であり、被害の発生を公表したものではありません。 厚労省の件についても、山口県が掲載した連絡は「情報漏えいや不正アクセスの発生を公表したものではない」とされています。
| 区分 | 事例 | 出典 |
|---|---|---|
| 行政 | 厚生労働省「介護サービス情報公表システム」が 10/21 16:00〜10/22 12:00(予定)停止 | 記事 |
| EC | BASE(ネットショップ作成サービス)が緊急メンテナンス | ITmedia |
| ゲーム | Cygames『ウマ娘 プリティーダービー』『グランブルーファンタジー』『Shadowverse: Worlds Beyond』が 10/21 23:00ごろから緊急メンテ(グラブルは 10/22 7:00 まで予定) | ファミ通 |
| コンテンツ | ニコニコ、pixiv(pixiv など一部は再開) | ITmedia |
| 金融・交通 | 静岡銀行、阪急電鉄 | ITmedia |
| SaaS | コドモン(保育園向けSaaS) | ITmedia |
| 教育 | 東京外国語大学が Webサイト・一部コンテンツの一時停止(アクセス制限)の可能性を告知 | 大学公式X |
| ホスティング | さくらインターネット、エックスサーバー、GMOペパボが緊急メンテナンス | ITmedia |
首相が自身のXでPHPの更新対応への協力を呼びかけたことも報じられています(「大至急のお願い」との表現はITmediaによる引用)。 出典:ITmedia
対応手順
以下はすべてPHP公式アドバイザリに記載されている内容です。緩和策は特定の攻撃経路への露出を減らすものであり、 更新に代わるものではありません。
CVE-2026-109618 OOM corruption 向け
memory_limit=-1を設定する。アプリケーションが上書きできない形(FPMプールやApache設定のphp_admin_valueなど)で指定し、他のプール・ディレクトリ・アプリケーション設定が有限値に戻していないか確認する。post_max_sizeを小さく設定する。ファイルアップロードが不要なアプリケーションでは 8M、必要なら 32M。upload_max_filesizeはpost_max_size未満に保つ。- Webサーバーやプロキシ側で、デコード後のリクエストサイズ、入力フィールド数、multipartパート数、ヘッダ数、ネスト深度に上限を設ける。これらの上限は 利用可能な
Content-Lengthを持たないリクエストも対象にする必要がある。 - コンテナやcgroupのリソース制限を可用性の境界として使う。影響を受けたワーカーだけを終了させるポリシーが望ましい。
RLIMIT_ASやRLIMIT_DATAで代用しない(脆弱な経路のアロケーション失敗を引き起こし得るため)。
CVE-2026-109619 stale global state 向け
session.upload_progress.enabled=0を設定し、すべてのワーカーを再起動する。リクエスト解析前に適用される設定(php.ini、FPMプール、サーバー設定)で指定する必要があり、ini_set()や FPM の.user.iniでは不十分。- PHP 8.5 では
fatal_error_backtraces=0を設定し、すべてのワーカーを再起動する。これは確認されている fatal backtrace 経路のみを塞ぐ。 - リクエスト単位で適用され、初期化前に診断を出力する無効・非推奨の設定を除去する。
error_reporting、display_errors、@で診断を隠しても効果はない。 - 攻撃者から到達可能な fatal error や実行タイムアウトを修正する。コールバック、アップロードやインポートの処理、クリーンアップ処理における失敗を含む。
出典:PHP公式アドバイザリ「If you cannot update immediately」
当社の運用上の推奨(公式記載ではありません)
- 自社が運用するPHPのバージョンとSAPI(
mod_php/ PHP-FPM など)を全台棚卸しする。 - 8.1以前の環境は「修正版が存在しない」前提で、公開停止・自前ビルド・移行のいずれかを経営判断として選ぶ。
- 8.2へ移行する場合、2026年12月31日で終了するため移行先としては短期である点に留意する。
- Cloudflare 利用時はWAF保護を維持する。公式は「WAFは追加の防御層であり、PHPの更新が必要」と明記している。
確認できていない事項
本記事で扱わなかった、あるいは断定しなかった点を明示します。
- 国内での被害の有無。情報漏えいや不正アクセスの発生を公表した一次情報は、執筆時点で確認できていません。したがって「被害なし」とも断定していません。
- 脆弱性情報の漏えい経路。Cloudflareは公開前の攻撃トラフィック観測を述べていますが、漏えいの経緯そのものは一次確認できていません。
- 各サービスの現在の稼働状況。停止・メンテナンス開始の事実のみ確認しています。復旧状況は各社公式の最新情報を確認してください。
- 個別環境での攻撃成立可否。SAPIとアプリケーション構成に依存するため、一律には判断できません。
出典一覧
- PHP公式「Security advisory: Critical remote code execution vulnerabilities, update now」2026年10月21日。修正版、対象SAPI、緩和策の記載元。
- PHP公式「Upcoming Critical PHP Security Release」2026年10月20日。事前告知とCVSS 9.2の明示。
- PHP「Supported Versions」サポート期間の定義と各系列の終了日。
- PHP「End of life」一覧8.1は2025年12月31日終了。
- GHSA-w8hw-w9fx-j79w(CVE-2026-109618)
- GHSA-6wmf-4rv5-p3rp(CVE-2026-109619)
- Wiz Research「php2shell」PHP 5.4以降への影響、実証内容、開示タイムライン。
- Cloudflare「Protecting against php2shell」WAF提供状況、公開前の攻撃観測、プラグイン更新では直らない旨。
- W3Techs「Versions of PHP」2026年10月21日時点。PHP利用率69.3%、8系65.2% / 7系27.0% / 5系7.7%。
- ITmedia「PHPの『緊急』レベルの脆弱性、開発元が修正バージョン公開」2026年10月22日 00:53。国内各社の対応一覧。
- ファミ通「『ウマ娘』『グラブル』『シャドバWB』などが本日23時より緊急メンテ」Cygames各タイトルのメンテナンス告知。
- 介護サービス情報公表システムの一時停止に関する記事山口県が掲載した厚労省老健局からの連絡内容。
- 東京外国語大学 公式XWebサイト・一部コンテンツの一時停止(アクセス制限)の可能性について。
- Yahoo!ニュース(W3Techs集計を含む解説記事)攻撃成立条件がSAPI・構成に依存する旨。
投稿者プロフィール




