Microsoft Security Response Center(MSRC)が10月30日、「Patch now(今すぐパッチを)」と題した顧客向けガイダンスを公開しました。対象は、10月中旬〜下旬に数日差で公開された3件——PHP の重大 RCE「PHP2Shell」、Brotli デコーダの境界外書き込み、eMudhra の中間 CA 鍵漏えいです。いずれも Microsoft 製品の脆弱性として始まった話ではありませんが、これらの部品はインターネット中のソフトに組み込まれており、Microsoft のサービスにも顧客環境にも入っています。MSRC は「Microsoft が直す部分」と「あなたが直す部分」を分けて示しました。
この記事は、その要点を Azure を使っていない開発者にも効く形で整理します。各脆弱性の仕組みは当サイトの個別記事に譲り、ここでは「誰が何を直すか」と「どこに入っているかを見つける」ことに絞ります。供給網攻撃の全体像はサプライチェーン攻撃とは|手口・防御ツール比較・npm 12の新機構まで実践解説にまとめています。攻撃を再現する手順(PoC)は載せません。
THREE ISSUES3件の概要
MS 製品の穴ではないが、どこにでも入っている3件
-
PHP2Shell
PHP の重大 RCE 2件(CVE-2026-109618 / 109619)
Web リクエストを処理する PHP 全般。悪用確認済み・CISA KEV 登録。修正は PHP 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35
-
Brotli
Brotli デコーダの境界外書き込み(CVE-2026-111497)
Brotli 1.0.3〜1.2.0 を同梱する全製品(.NET・Node.js・PowerShell 7・VS・Git for Windows・PHP の Windows ビルド等)。KEV 登録
-
eMudhra
emSign G3 中間 CA 鍵8本が復元可能な強度で生成
ソフトの脆弱性ではなく証明書の信頼の問題。該当証明書の信頼をあらゆる場所で止める
-
共通
攻撃者の立ち上がりが速い
公開から数時間で PoC、PHP2Shell は5日で KEV。だから .NET・Windows・VS は月例外(OOB)で修正。再起動を先送りしない
30秒でわかる
- ・MSRC が3件を「今すぐパッチを」と一斉警告。PHP2Shell(CVE-2026-109618/109619・PHP RCE)、Brotli OOB書き込み(CVE-2026-111497)、eMudhra CA 鍵漏えい。PHP2Shell と Brotli はCISA KEV 登録=悪用中。
- ・いずれも MS 製品の穴ではなく「どこにでも入っている部品」。Microsoft が直す範囲とあなたが直す範囲を切り分けるのが核心。
- ・落とし穴は self-contained の .NET・コンテナ・推移的な Brotli・独自トラストストア。クラウドの自動パッチでは直らず、自分でリビルド/更新が要る。
- ・Azure 非利用でも関係する。PHP 8.2.35+/Node 22.23.4 系+/.NET は SDK 更新→リビルド/CA bundle は eMudhra 削除後か、を自分で確認。
3件の概要
| 問題 | 影響範囲 | 悪用 | 修正 |
|---|---|---|---|
| PHP2Shell(CVE-2026-109618 / 109619) | Web リクエストを処理する PHP 全般(PHP-FPM・mod_php・php-cgi・FrankenPHP・LiteSpeed) | 悪用確認済み・10/26 KEV | PHP 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 |
| Brotli OOB書き込み(CVE-2026-111497) | Brotli 1.0.3〜1.2.0 を同梱する全製品(.NET・Node.js・PowerShell 7・VS・Git for Windows・PHP の Windows ビルド・Chromium/Electron 等) | 10/27 KEV | Brotli 1.0.10 / 1.1.1 / 1.2.1、各ランタイム更新 |
| eMudhra CA 鍵漏えい | emSign G3 中間 CA、および信頼リストから外れるルートにチェーンする証明書を信頼するすべて | ソフトの脆弱性ではない | 10/26 Windows OOB更新・各ディストロの証明書更新・独自トラストストアの更新 |
CVE 記録でも、CVE-2026-111497 は Google 採番の「Out-of-Bounds Write in Google Brotli Decoder」(CWE-787・Brotli 1.0.3〜1.2.0・未認証リモート)、CVE-2026-109618/109619 は PHP 採番の RCE と確認できます。KEV 入りは「理論上危ない」ではなく「実際に攻撃に使われている」の意味です。
誰が何を直すのか:責任分界
ガイダンスの核心はこの分界です。クラウドだから自動で安全、ではありません。
WHO FIXES WHAT責任分界
Microsoft が直す範囲と、あなたが直す範囲
Microsoft が直す
あなたが直す
Microsoft が直す: MS 運用サービス(M365・App Service/Functions/AKS の基盤層・Azure 基盤)
あなたが直す: 自分でインストール・同梱したソフトは自分で更新
Microsoft が直す: 自動パッチ有効リソースはウィンドウ内で自動適用・再起動
あなたが直す: 手動パッチのリソースは公開系から順に適用・再起動/リイメージ
Microsoft が直す: プラットフォーム層のランタイム
あなたが直す: self-contained の .NET アプリは SDK でリビルド(ホスト更新では直らない)/コンテナ・カスタムイメージは再ビルド
- Microsoft が直す:Microsoft 365、App Service / Functions / Static Web Apps / Logic Apps / AKS のプラットフォーム層、Azure 基盤。自動パッチが有効なリソースはメンテナンスウィンドウ内で自動適用・再起動(公開リソースで次が数日先なら即時適用を推奨)。
- あなたが直す:自分でインストール・同梱したソフトは、パッチ方式に関係なく自分で更新。手動パッチのリソースは公開系から順に適用・再起動/リイメージ。コンテナとカスタムイメージは再ビルド・再デプロイ。そして最大の落とし穴が、self-contained(自己完結型)の .NET アプリ——ホストのランタイム更新では直らず、最新 SDK でリビルドして再デプロイが必要です。
なぜ速度が繰り返し強調されるのかも、ここに関わります。攻撃者の立ち上がりが速く、協調開示の期日前に悪用が報告され、修正公開から数時間で PoC が出回り、PHP2Shell はわずか5日で KEV 入りしました。だから .NET・Windows・Visual Studio の修正は月例サイクル外(out-of-band)で出ています。OOB 更新は追加の再起動を伴うため、MSRC は「再起動を先送りするな」と念を押しています。「OS は最新」でも、アプリに埋め込んだランタイムや、再起動していないプロセスが古い Brotli/PHP を抱えたままなら、穴は塞がっていません。自動パッチを過信せず、まず自分が何を動かしているかを把握するのが先決です。
各対応の要点(詳細は個別記事へ)
PHP2Shell:Linux はディストロのパッケージで届きますが、Windows には PHP が含まれないため Windows Update では直りません。自分で入れた PHP は自分で更新(IIS のアプリケーションプール/FastCGI をリサイクル)。PHP 5.x / 7.x はパッチが出ないので、サポート版へ移行するしかありません。Azure App Service for Windows のビルトイン PHP は EOL で、Linux へ移すか独自ランタイムを持ち込みます。手口と連鎖はphp2shell と Fragnesia の連鎖で root 奪取に整理しています。
Brotli:デコーダはランタイムやツールの内部に同梱されているのが厄介です。.NET はランタイム/SDK を更新(self-contained・Native AOT はリビルド)、Node.js は 22.23.4 / 24.22.1 / 26.12.1 へ、PowerShell 7 は自動解凍が既定 ON なので要注意。PHP の Windows ビルドはバージョン番号が変わらないので、Brotli 1.2.1 同梱かを「ビルド番号」で確認します。DuckDB・Apache Arrow・woff2 など推移的に Brotli を持つ依存も点検を。影響範囲の広がりはhttp2shell と Brotli の“爆発半径”にまとめています。
eMudhra:emSign G3 の中間 CA 鍵8本(TLS 用6・コード署名用2)が復元可能な強度で生成されていました。該当する鍵で発行された証明書があれば、サイトのなりすまし・通信の傍受・マルウェアを信頼された発行元に見せかけることが可能になります。対処は「信頼リストが存在するあらゆる場所で、該当証明書の信頼を止める」こと。自動の証明書信頼更新をブロックせず、独自トラストストアを持つアプリ(Java キーストア・Python の certifi・コンテナの CA bundle)は自分で更新します。オフラインや自動更新を切った Windows 機は OOB 更新を手動で入れるか、更新済みイメージから再デプロイしてください。背景はJava の eMudhra CA 失効対応を参照。
開発者チェックリスト:どこに入っているかを全部見つける
今回いちばん難しいのは、個々の修正ではなく「どこに入っているかを全部見つけること」です。SBOM を持っていないチームには、実地の棚卸し試験になります。
DEVELOPER CHECKLIST開発者チェックリスト
どこに入っているかを全部見つける
-
1.PHP と Node.js の版
PHP は 8.2.35 以降か・5.x/7.x が残っていないか。Node.js は 22.23.4 / 24.22.1 / 26.12.1 以降か(Docker の FROM node: も更新)
-
2.自己完結型の .NET
self-contained / Native AOT のアプリは最新 SDK でリビルド→再デプロイ。ホストのランタイム更新では直らない
-
3.推移的な Brotli と Git
Python の brotli/brotlicffi、DuckDB・Apache Arrow・woff2 など経由の Brotli。Git for Windows は 2.56.0.windows.4 以降
-
4.証明書と外部解凍
Java キーストア・Python の certifi・コンテナの CA bundle は eMudhra 削除後か。外部 API の Brotli 圧縮応答を展開するクライアント(WAF の外)は無いか
今日確認すること(Azure 非利用でも)
- ・PHP を動かすサーバー/コンテナは 8.2.35 以降か。5.x / 7.x が残っていないか。
- ・Node.js は 22.23.4 / 24.22.1 / 26.12.1 以降か。Docker の
FROM node:を更新したか。 - ・self-contained / Native AOT の .NET アプリは無いか。あれば SDK 更新→リビルド→再デプロイ。
- ・推移的に Brotli を持つ依存(Python の
brotli/brotlicffi、DuckDB・Arrow・woff2 等)と Git for Windows(2.56.0.windows.4 以降)。 - ・Java キーストア・Python の
certifi・コンテナの CA bundle は eMudhra 削除後のものか。外部 API から Brotli 圧縮応答を受けて展開するクライアント(WAF の外)は無いか。
まとめ
この記事の結論
- ・MSRC が PHP2Shell・Brotli OOB・eMudhra の3件を「今すぐパッチを」と一斉警告。PHP2Shell と Brotli は CISA KEV 登録(悪用中)。
- ・核心は責任分界。MS が直すのはプラットフォーム層/Azure 基盤、あなたが直すのは自分で入れた・同梱したソフト。
- ・落とし穴は self-contained .NET・コンテナ・推移的 Brotli・独自トラストストア——自動パッチでは直らず、リビルド/更新が要る。
- ・WAF はインバウンドのみ。外部から Brotli 応答を取得して展開するクライアントや EOL ランタイムは、パッチ/移行が必須。
参照ソース
- MSRC — Patch now: PHP2Shell, Brotli, and eMudhra guidance for customers(責任分界・各対応・チェックリストの一次情報)
- CVE-2026-111497 公式記録(Google 採番・Brotli デコーダの OOB write)(CWE-787・Brotli 1.0.3〜1.2.0・未認証リモート)
- CVE-2026-109618 公式記録(PHP 採番・RCE via OOM corruption)(PHP2Shell の一方)





