PHP2Shellと今週の重大な脆弱性:サーバーのパッチ適用方法(2026年10月)
今週、ここ数年で最も深刻なPHPセキュリティ事案の一つが発生しました。2026年10月21日、PHPプロジェクトはPHP2Shellと呼ばれる2件の重大なリモートコード実行(RCE)脆弱性の緊急リリースを公開しました。詳細が1日早く流出し、数時間以内に攻撃者がサーバーの探索を始めたためです。同時に、Microsoftの過去最大規模となった10月のPatch Tuesdayや、CISA KEVへの新規追加により、IT部門の緊急対応はさらに増えています。
本記事では、何が起きたのか、どのシステムが影響を受けるのか、そして具体的なパッチ適用・緩和策をまとめ、今後24〜72時間の優先順位付けをお手伝いします。
要点
- 今すぐPHPを更新: 修正版は8.5.12、8.4.27、8.3.36、8.2.35です。PHPは更新が唯一の完全な対策だとしています。
- 最もリスクが高い環境: Apache mod_phpで、アプリケーションコードが実行される前にエクスプロイトが動作する可能性があります。PHP-FPM、php-cgi、FrankenPHP、LiteSpeedも条件次第で影響を受けます。
- 攻撃の試みが発生中: CloudflareとwatchTowrは10月21日に実際の攻撃の試みを報告しました。
- 旧バージョン(8.1、8.0、7.4)には通常の修正なし: ディストリビューションやベンダーの修正ビルドを使うか、ソースのバックポートを適用するか、アップグレードしてください。
- 今週あわせて適用すべきパッチ: Windows Shellのゼロデイ CVE-2026-96951、およびIvanti、Palo Alto PAN-OS、Fortinet、Cisco、BeyondTrust、AtlassianのKEV登録脆弱性。
PHP2Shellとは?
PHP2Shellは、特定のフレームワークやCMSではなく、PHPランタイム自体に存在する2つの脆弱性の総称です。そのため、サーバーが脆弱なPHPビルドを使っていれば、WordPress、WooCommerce、Magento、Laravel、独自開発のPHPサイトのいずれも影響を受ける可能性があります。PHPは両方をCVSS v4.0で9.2と評価しており、Wiz、Calif、OpenAIの研究者によって報告されました。
- CVE-2026-109618(メモリ不足による破損): out-of-memoryエラーがリクエストを中断し、データが部分的に初期化された状態で残ります。その後のクリーンアップ処理がこの不正な状態を扱うことで、リモートコード実行につながります。
- CVE-2026-109619(古いグローバル状態/use-after-free): メモリ解放後もPHPがリクエストデータへの参照を保持し、同じワーカーの後続リクエストがそれを再利用してしまいます。研究者はsession upload progress機能を通じたコード実行を実証しました。
- メモリ漏えい: 認証なしでPHPワーカーのメモリを読み取れることも示されており、パスワード、セッショントークン、APIキーが漏えいする恐れがあります。
影響を受ける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 / 8.0 / 7.4 | 通常のアップストリームリリースなし | ディストリビューション・ベンダーの修正ビルドを使用、ソースのバックポートを適用、またはアップグレード |
Linuxディストリビューションは、バージョン番号を変えずに修正をバックポートすることがよくあります。Ubuntu、Debian、Red Hat、Alpineなどでは、バージョン表記だけで判断せず、パッケージのchangelogやベンダーのセキュリティアドバイザリで2つのCVE IDを確認してください。
PHP2Shellのパッチ適用手順
- すべてのPHP実行環境を洗い出す。 Webサーバー、コンテナ、CIイメージ、副次的なインストールも含めます。コマンドラインの
php -vが実際にWebリクエストを処理しているバイナリとは限らないため、phpinfo()やFPMプールも確認してください。 - 修正版へ更新する。 Ubuntu/Debianの例:
sudo apt update && sudo apt install --only-upgrade php8.3 php8.3-fpm。RHEL系ではdnf update php*を使用します。Dockerの場合は最新の公式phpイメージタグから再ビルドして再デプロイします。 - すべてのPHPプロセスを再起動する。 PHP-FPM、Apache(mod_php)、LiteSpeed、FrankenPHPを再起動し、古いワーカーが残らないようにします。
- 検証する。 インストール済みパッケージと稼働中のワーカーの両方が修正版であることを確認します。
- パッチ適用後にメモリ設定を見直す。 修正により厳格なメモリ上限が導入され、長時間実行スクリプトやシャットダウンハンドラーが停止する場合があります。インポートやレポートなど重い処理をテストしてください。
- 露出していた場合は機密情報を更新する。 脆弱なビルドがインターネットに公開されていた場合、メモリ漏えいのリスクを考慮し、DBパスワード、APIキー、セッションシークレットの変更を検討してください。
今日パッチを適用できない場合の暫定対策
以下の対策はリスクを下げますが、脆弱性を完全には解消しません。 正式な更新までのつなぎとしてのみ使用してください。
- CVE-2026-109619: php.iniまたはFPMプール設定で
session.upload_progress.enabled=0を設定し、ワーカーを再起動します。ini_set() や .user.ini には頼らないでください。PHP 8.5ではfatal_error_backtraces=0も設定します。 - CVE-2026-109618:
post_max_size=8M(アップロードが必要なら32M)に設定し、upload_max_filesizeをそれ未満に保ち、Nginx、Apache、WAFでリクエストサイズを制限し、アプリで使わないmultipartリクエストをブロックします。 - メモリ制限: RLIMIT_ASやRLIMIT_DATAではなく、コンテナやcgroupのメモリ制限を使用します。
- PHP-FPM: パフォーマンスが許せば
pm.max_requests=1を検討し、各ワーカーが1リクエストのみ処理するようにします。 - 露出の制限: 管理画面やステージング環境をVPNやIP許可リストの内側に置き、PHP2Shell向けのWAF/CDNルールを有効化します。
サーバーが標的にされた可能性を示す兆候
- 異常なmultipart POSTリクエストの後にメモリ上限エラーがログに出る
- HTTP 500レスポンスの急増
- 異常に大きいPHPSESSID Cookie
- 原因不明のPHPワーカーのクラッシュや再起動
- アップロード・キャッシュフォルダ内の新規または改変されたPHPファイル
今週のその他の重大な脆弱性
緊急対応が必要なのはPHPだけではありません。Microsoftの2026年10月のPatch Tuesday(10月13日)では約1,411件の脆弱性が修正され、うち70件がCritical、3件がゼロデイでした。CISAも10月13日から16日にかけて、悪用が確認された複数の脆弱性をKnown Exploited Vulnerabilities(KEV)カタログに追加しました。
CVE | 製品 | 問題 | 状況 |
|---|---|---|---|
CVE-2026-96951 | Windows Shell | Mark of the Webの回避 | 悪用確認済み、Windows Updateで修正 |
CVE-2026-108398 | .NET Framework | セキュリティ機能の回避(WDAC) | 一般公開済み |
CVE-2026-104935 | Ivanti Connect Secure | 認証回避 | CISA KEV登録 |
CVE-2026-0322 | Palo Alto Networks PAN-OS | コードインジェクション | CISA KEV登録 |
CVE-2025-61624 | Fortinet製品 | パストラバーサル | CISA KEV登録 |
CVE-2026-76519 | Cisco Secure Email Gateway | パストラバーサル | CISA KEV登録 |
CVE-2026-102764 | BeyondTrust Remote Support | 認証回避 | CISA KEV登録 |
CVE-2026-21589 | Atlassian製品 | ファイル・ディレクトリの露出 | CISA KEV登録、PoC公開済み |
これらすべてについて、VPNゲートウェイ、ファイアウォール、リモートサポートツール、メールゲートウェイなどインターネットに公開されたシステムを優先してください。ベンダーのパッチを適用してインストール済みバージョンを確認し、すぐに適用できない場合は管理インターフェースを信頼できるネットワークに限定するか、該当機能を無効化してください。
Windows 10・11ユーザーへの注意
2026年10月の更新は、Windows 11 24H2 Home・ProおよびWindows 10 Enterprise LTSB 2016の最後のセキュリティ更新です。これらのバージョンを使っている端末はアップグレードを計画してください。
OneXT Digitalのサポート
多くの企業は、異なるホスティング、バージョン、プラグインで数十のPHPサイトを運用しており、緊急パッチの適用は遅く、リスクも伴います。OneXT Digitalのチームは、PHP、WordPress、WooCommerce、Magento環境を診断し、PHP2Shellのパッチ適用や暫定的なハードニングを行い、更新後のサイトをテストし、次の重大なCVEにも数週間ではなく数時間で対応できる保守体制を構築します。ウェブサイトの無料セキュリティチェックはお気軽にお問い合わせください。

