CVE-2026-47291は、WindowsのHTTP要求を処理する「HTTP.sys」に存在するリモートコード実行の脆弱性です。認証もユーザー操作も不要で、ネットワーク経由から攻撃できるCVSS 9.8の重大な脆弱性であるため、Windows Server管理者は優先的に対応する必要があります。Microsoftは2026年6月9日、修正を含むセキュリティ更新プログラムを公開し、企業に早急なリスク評価と更新を推奨しています。(Microsoft)
結論として、HTTP.sysでHTTP通信を受け付けているサーバーには、2026年6月の累積更新プログラム、またはそれ以降の累積更新プログラムを速やかに適用してください。特に、MaxRequestBytesが65,535バイト以上に変更され、外部からHTTP.sysへ到達できるサーバーは最優先です。
一方、MaxRequestBytesが既定値の16,384バイトである環境は、公開されている悪用条件を満たさないとされています。ただし、設定変更や構成の見落としを考慮すると、これは更新を省略する理由にはなりません。(CrowdStrike)
CVE-2026-47291とは
CVE-2026-47291は、「CVE-2026-47291 HTTP.sys Remote Code Execution Vulnerability」として公開されたWindows HTTP.sysの脆弱性です。
HTTP.sysが細工されたHTTP要求を処理する際、整数オーバーフローまたはラップアラウンドが発生し、ネットワーク経由でコードを実行される可能性があります。Microsoftが登録した弱点分類には、整数オーバーフローに加えてヒープベースのバッファーオーバーフローも含まれています。(NVD)
| 項目 | 内容 |
|---|---|
| CVE番号 | CVE-2026-47291 |
| 公開日 | 2026年6月9日(米国時間) |
| 対象コンポーネント | Windows HTTP.sys |
| 脆弱性の種類 | リモートコード実行 |
| CVSS基本値 | 9.8/Critical |
| 攻撃経路 | ネットワーク |
| 攻撃の複雑さ | 低い |
| 攻撃前の認証 | 不要 |
| ユーザー操作 | 不要 |
| 公開時点の悪用確認 | なし |
| Microsoftの悪用可能性評価 | Exploitation More Likely |
CVSSベクトルはAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:Hです。つまり、ネットワークから低い攻撃難易度で到達でき、事前権限や利用者の操作を必要とせず、機密性・完全性・可用性のすべてに大きな影響を及ぼす可能性があります。(NVD)
HTTP.sysとは何か
HTTP.sysは、Windows上でHTTP要求を処理するカーネルモードのドライバーです。IISの下位層だけでなく、WindowsのHTTP Server APIを利用するサービスや業務アプリケーションでも使われます。(Microsoft Learn)
そのため、「IISのWebサイトを公開していないから影響しない」とは限りません。管理画面、監視ツール、業務API、ベンダー製ソフトウェアなどが、HTTP.sys経由で待ち受けていることがあります。
CVE-2026-47291の調査では、IISの役割がインストールされているかだけでなく、HTTP.sysにURLやリクエストキューが登録され、実際に通信を受け付けているかを確認する必要があります。
CVE-2026-47291を優先すべき理由
認証なしでサーバーへ攻撃できる
攻撃者は、対象サーバーのHTTP.sysへ到達できれば、ログインや既存アカウントを必要としません。フィッシングメールを開かせるなどの利用者操作も不要です。
公開Webサーバーだけでなく、侵入後の横展開を想定すると、社内ネットワーク限定の管理APIやイントラネットサーバーも無視できません。
HTTP要求を受ける共通レイヤーに存在する
HTTP.sysはアプリケーションより下のレイヤーでHTTP要求を処理します。そのため、特定のWebアプリケーションだけを修正しても、OS側の脆弱性は解消されません。
WAFやリバースプロキシを設置していても、オリジンサーバーへ直接到達できる経路、社内用インターフェース、IPv6、管理用ポートなどが残っていれば攻撃面になります。
公開時点で悪用されていなくても猶予が長いとは限らない
Microsoftは更新公開前の悪用や一般公開を確認していないと説明しています。一方、悪用可能性は「Exploitation More Likely」と評価されており、早急なリスク評価と更新が推奨されています。(Microsoft)
「既知の攻撃がない」という情報は、パッチ適用を後回しにする根拠ではありません。更新公開後は修正前後の差分が解析されるため、攻撃手法が研究されることも想定して対応する必要があります。
Windows HTTP.sysで何が変わるのか
CVE-2026-47291への対応は、新機能の追加やHTTP.sysの利用方式変更ではなく、Windowsのセキュリティ更新による脆弱な処理の修正です。
通常は、IISのサイト設定、証明書、アプリケーションコードをCVE対応のために移行する必要はありません。ただし、次の作業は必要です。
- 対象OSと現在のビルドを確認する
- HTTP.sysの利用状況と外部到達性を確認する
- 累積更新プログラムを検証して適用する
- 必要に応じて再起動する
- 更新後にWebサイト、API、認証、監視を確認する
- Windows Server 2012/2012 R2はESUと移行計画を確認する
また、一時緩和策としてMaxRequestBytesを引き下げる場合は、HTTP要求ヘッダーの上限が変わります。これはOS更新とは異なり、業務アプリケーションの動作に影響する可能性があります。
影響を受けるWindows Serverと修正版
次のWindows Serverが影響対象です。Server Coreも対象に含まれます。
| Windows Server | 2026年6月の更新例 | 修正済みビルドの基準 |
|---|---|---|
| Windows Server 2025 | KB5094125 | 10.0.26100.32995以上 |
| Windows Server 2022 | KB5094128 | 10.0.20348.5256以上 |
| Windows Server 2019 | KB5094123 | 10.0.17763.8880以上 |
| Windows Server 2016 | KB5094122 | 10.0.14393.9234以上 |
| Windows Server 2012 R2 ESU | KB5094041 | 6.3.9600.23228以上 |
| Windows Server 2012 ESU | KB5094042 | 6.2.9200.26132以上 |
Microsoftの2026年6月更新一覧と、Microsoftが登録した影響バージョンに基づく基準です。2026年7月以降など、より新しい累積更新プログラムを適用している場合は、6月のKB番号の有無だけではなく、現在のOSビルドと最新の累積更新状況で判断してください。(Microsoft)
Windows 10やWindows 11にも影響するバージョンがあります。ただし、対応順位を決める際は、HTTP.sysで外部または社内ネットワークから通信を受けるWindows Serverを先に確認するのが現実的です。(NVD)
まず確認すべき3つのポイント
OSのバージョンとビルドを確認する
管理者権限のPowerShellで、次のコマンドを実行します。
$os = Get-CimInstance Win32_OperatingSystem
$cv = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
$ubr = if ($null -eq $cv.UBR) { 0 } else { [int]$cv.UBR }
$base = [version]$os.Version
[pscustomobject]@{
ProductName = $os.Caption
FullBuild = '{0}.{1}.{2}.{3}' -f `
$base.Major, $base.Minor, $cv.CurrentBuildNumber, $ubr
}
表示されたFullBuildを、前述の修正済みビルドと比較します。
ただし、資産管理ツールが古い情報を保持している場合があります。重要サーバーでは、管理コンソール上の情報だけでなく、対象サーバー自身でも確認してください。
MaxRequestBytesの値を確認する
CVE-2026-47291には、HTTP.sysのMaxRequestBytes設定が関係します。
MaxRequestBytesは、アップロードファイルやPOST本文のサイズではありません。HTTPの要求行と要求ヘッダーを合計したサイズの上限です。既定値は16,384バイトです。(Microsoft Learn)
次のPowerShellで現在の値を確認できます。
$path = 'HKLM:\SYSTEM\CurrentControlSet\Services\HTTP\Parameters'
$p = Get-ItemProperty -Path $path -ErrorAction SilentlyContinue
$explicit = $null -ne $p -and `
($p.PSObject.Properties.Name -contains 'MaxRequestBytes')
$value = if ($explicit) {
[uint32]$p.MaxRequestBytes
} else {
16384
}
[pscustomobject]@{
MaxRequestBytes = $value
Setting = if ($explicit) {
'レジストリで明示設定'
} else {
'未設定:既定値16,384を使用'
}
Priority = if ($value -ge 65535) {
'最優先:更新または一時緩和が必要'
} else {
'既知の設定条件は緩和。ただし更新は必要'
}
}
判断基準は次のとおりです。
| MaxRequestBytes | 判断 |
|---|---|
| 未設定 | 既定値16,384。公開されている悪用条件は満たさない |
| 16,384~65,534 | 一時的な緩和範囲。ただし更新は必要 |
| 65,535以上 | 悪用可能な設定として最優先で対応 |
| 値が不明 | 未確認として高い優先度で調査 |
既定値の環境が公開された悪用条件を満たさないこと、更新前の緩和策として65,534以下が示されていることが報告されています。(CrowdStrike)
HTTP.sysの待ち受け状況を確認する
次のコマンドで、HTTP.sysの稼働状態や登録URLを確認します。
netsh http show servicestate
netsh http show urlacl
show servicestateでは、リクエストキュー、登録URL、関連プロセスなどを確認します。
show urlaclに表示されるのはURL予約情報です。登録があるだけで現在通信を受けているとは限らないため、サービス状態、ファイアウォール、ロードバランサー、NAT、クラウドのセキュリティグループも併せて確認してください。
80番や443番以外の独自ポートも対象です。管理画面やベンダー製アプリケーションでは、8000番台や数万番台のポートが使われていることがあります。
対応の優先順位を決める基準
実務では、CVSSだけでなく「設定」と「到達性」を組み合わせて順位を決めます。
| 状況 | 優先度 | 対応の目安 |
|---|---|---|
| 外部到達可能、未更新、MaxRequestBytesが65,535以上 | 最優先 | 緊急変更として同日対応 |
| 外部到達可能、未更新、設定が既定値または65,534以下 | 高 | 通常の月例待ちにせず前倒し |
| 社内から到達可能、MaxRequestBytesが65,535以上 | 高 | 横展開を想定して早期対応 |
| 到達性や設定が確認できない | 高 | 未影響と判断せず調査 |
| HTTP.sysの待ち受けなし、既定値、未更新 | 中 | 次の早期保守枠で更新 |
| 修正済みビルド以上 | 低 | 更新状態とサービス正常性を記録 |
同日対応という目安は、Microsoftが指定した一律の期限ではなく、外部露出と設定条件を考慮した運用上の判断です。
セキュリティ更新を適用する手順
対象サーバーを一覧化する
最初に、次の情報を1台ごとに整理します。
| 確認項目 | 記録する内容 |
|---|---|
| OS | 製品名、バージョン、ビルド |
| 用途 | Web、API、管理、監視、業務アプリなど |
| HTTP.sys | リクエストキュー、登録URL、ポート |
| 到達性 | インターネット、拠点間、社内限定、端末限定 |
| MaxRequestBytes | 未設定または実際の値 |
| 冗長化 | 単体、負荷分散、クラスター |
| 更新方法 | Windows Update、WSUS、管理ツールなど |
| 保守条件 | 停止可能時間、担当者、切り戻し方法 |
特に、ロードバランサー配下のサーバーはノードごとの設定差を確認してください。1台だけMaxRequestBytesが変更されている、といった構成ずれが起こり得ます。
検証環境または先行ノードでテストする
確認するのは、単にOSが起動するかどうかだけではありません。
- WebサイトやAPIが応答するか
- Windows認証やシングルサインオンが成功するか
- ロードバランサーのヘルスチェックが通るか
- 証明書を使ったHTTPS通信が正常か
- 監視エージェントやバックアップ製品が接続できるか
- HTTP 400、500、503エラーが増えていないか
- CPU、メモリ、HTTPキューに異常がないか
Microsoftは、更新前に各KBの既知の問題を確認するよう案内しています。(Microsoft)
累積更新プログラムを適用する
2026年6月の対応KB、またはそれを置き換える新しい累積更新プログラムを適用します。
WSUSや構成管理ツールを使う場合は、次の点を確認してください。
- 対象KBが承認されている
- サーバーが正しいコンピューターグループに所属している
- 更新プログラムの同期が完了している
- 再起動抑止ポリシーで適用が止まっていない
- 保留中の再起動が残っていない
- 適用後のビルドを収集できる
「更新を配信した」だけでは対応完了ではありません。インストール成功、再起動、修正済みビルド、サービス正常性まで確認して完了とします。
Windows Server 2012/2012 R2ではSSUも確認する
Windows Server 2012 R2でKB5094041を適用する場合、Microsoftは最新のサービススタック更新プログラムであるKB5079233を先に導入するよう案内しています。WSUSでは、KB5079233とKB5094041の両方を承認する必要があります。(マイクロソフトサポート)
Windows Server 2012では、KB5079234とKB5094042を確認してください。最新のSSUがないと、更新が提示されない、またはインストールできない可能性があります。(マイクロソフトサポート)
すぐに更新できない場合の一時緩和策
更新プログラムを即時適用できない場合は、次の緩和策を組み合わせます。
MaxRequestBytesを65,534以下にする
現在の値が65,535以上の場合は、業務影響を検証したうえで65,534以下に変更します。既定値の16,384で動作するなら、既定値へ戻す方法が最も単純です。
設定変更前に、現在のレジストリをバックアップします。
reg export `
"HKLM\SYSTEM\CurrentControlSet\Services\HTTP\Parameters" `
"$env:TEMP\http-parameters.reg" /y
65,534へ変更する例は次のとおりです。
$path = 'HKLM:\SYSTEM\CurrentControlSet\Services\HTTP\Parameters'
New-ItemProperty `
-Path $path `
-Name MaxRequestBytes `
-PropertyType DWord `
-Value 65534 `
-Force
HTTP.sysのレジストリ変更は、HTTPサービスを再起動するまで反映されません。関連するIISサービスの再起動が必要になることもあります。依存サービスを確認せずにnet stop httpを実行すると複数のサービスが停止する可能性があるため、重要サーバーでは計画再起動を選ぶ方が安全です。(Microsoft Learn)
設定を下げた後のHTTP 400に注意する
MaxRequestBytesを下げると、大きな要求ヘッダーが拒否される場合があります。影響が出やすい例は次のとおりです。
- 多数のActive Directoryグループに所属する利用者のKerberos認証
- 大きな認証トークンを使用するシングルサインオン
- Cookieが多いWebアプリケーション
- リバースプロキシが多数のヘッダーを追加する構成
- 独自ヘッダーに大きなデータを格納するAPI
特にKerberosトークンは、利用者が所属するグループ数によって大きくなる場合があります。上限を下げた後は、Windows認証を使用する代表的なユーザーでログインを確認してください。(Microsoft Learn)
問題が発生した場合は、次のHTTP.sysログも確認します。
%windir%\System32\LogFiles\HTTPERR\
RequestLengthやFieldLengthを伴うHTTP 400が増えていないかを確認すると、ヘッダー上限の影響を切り分けやすくなります。(Microsoft Learn)
ネットワークからの到達性を制限する
設定変更と並行して、次の制御を行います。
- 外部からオリジンサーバーへ直接接続できないようにする
- ロードバランサーやリバースプロキシの送信元だけを許可する
- 管理用HTTPポートを管理端末やVPN経由に限定する
- 不要なURL予約、サービス、ファイアウォール許可を削除する
- IPv4だけでなくIPv6の受信規則も確認する
- 使用していないHTTP.sysリスナーを停止する
WAFやネットワーク制限は攻撃面を狭めますが、OS更新の代替ではありません。
設定・更新・移行・料金・期限で確認すること
| 分類 | 確認すべき内容 |
|---|---|
| 設定 | MaxRequestBytes、HTTP.sysの登録URL、待ち受けポート、外部到達性 |
| 更新 | 2026年6月またはそれ以降の累積更新、適用後のOSビルド |
| 移行 | 2012/2012 R2の後継OS、アプリ対応状況、移行方式 |
| 料金 | ESU、検証環境、作業委託、停止時間、移行ライセンス |
| 期限 | 外部公開かつ危険設定なら同日対応、その他も早期保守枠で対応 |
更新のためにアプリケーション移行は必要か
CVE-2026-47291の修正自体はWindowsのセキュリティ更新であり、通常はアプリケーションの改修や別製品への移行を必要としません。
ただし、サポート終了OSを使っている場合は別です。アプリケーションが新しいWindows Serverに対応しているか、ミドルウェアやドライバーが利用できるかを確認し、OS移行を進める必要があります。
更新料金は発生するか
サポート対象のWindows Serverでは、CVE-2026-47291専用の製品を購入するのではなく、通常のWindowsセキュリティ更新として導入します。
一方、Windows Server 2012/2012 R2は通常サポートを終了しており、更新を受け取るにはESUの条件を満たす必要があります。ESUは年単位で購入する仕組みで、具体的な金額はライセンス形態、対象コア数、契約、導入方法によって異なります。(マイクロソフトサポート)
見積もりでは、パッチそのものだけでなく、次の費用も考慮します。
- ESUのライセンス
- 検証環境の構築
- 休日・夜間の保守作業
- ベンダーによるアプリケーション動作確認
- 新OSや新サーバーへの移行
- バックアップや切り戻し環境の準備
対応期限はいつか
CVE-2026-47291に対して、すべての組織に共通する固定期限が設定されているわけではありません。Microsoftは影響を受ける製品に対し、可能な限り早期の更新を推奨しています。(Microsoft)
実務上は、外部公開かつMaxRequestBytesが65,535以上なら、通常の月例更新日まで待たず緊急対応とするのが妥当です。
また、Windows Server 2012/2012 R2のESUは、2026年10月13日が最終日です。これはCVE-2026-47291だけの期限ではなく、今後のセキュリティ更新を受け取れる期間の終了日です。該当サーバーは、今回の更新と並行して移行計画を確定させる必要があります。(マイクロソフトサポート)
よくある疑問
IISを使っていなければ影響しないのか
IISを使っていないことだけでは、影響なしと判断できません。HTTP.sysは、WindowsのHTTP Server APIを利用するサービスやアプリケーションでも使用されます。
netsh http show servicestateで稼働状況を確認し、アプリケーション管理者や製品ベンダーにもHTTP.sysの使用有無を確認してください。
MaxRequestBytesが既定値なら更新しなくてもよいのか
既定値16,384では、公開されている悪用条件を満たさないとされています。しかし、更新は必要です。
レジストリ設定は、過去のトラブル対応や製品導入時に変更されることがあります。将来の構成変更で危険な値へ戻る可能性もあるため、設定による緩和だけで脆弱性管理を完了させないでください。
WAFやリバースプロキシがあれば安全か
攻撃面を減らす効果はありますが、完全な対策ではありません。
オリジンサーバーへ直接接続できる経路、社内ネットワーク、管理用インターフェース、IPv6、別ポートなどが残っている可能性があります。WAFを通過するHTTP要求の解析結果だけに依存せず、OSを更新してください。
パッチ適用後もMaxRequestBytesを下げる必要があるか
修正済み更新を適用した後、CVE-2026-47291のためだけに65,534以下へ固定する必要はありません。
ただし、必要以上に大きなHTTP要求ヘッダーを許可すると、HTTP.sysのメモリ使用量や攻撃面が増える可能性があります。Microsoftも、これらのレジストリ値を大きくすることにはリスクがあると説明しています。業務上必要な最小値を採用するのが適切です。(Microsoft Learn)
今すぐ行うべき対応
CVE-2026-47291は、認証や利用者操作なしでネットワーク経由からコードを実行される可能性がある、Windows HTTP.sysの重大な脆弱性です。
管理者は、次の順序で対応してください。
- Windows ServerのOSとビルドを一覧化する
MaxRequestBytesが65,535以上になっていないか確認するnetsh http show servicestateでHTTP.sysの利用状況を確認する- 外部到達可能か、社内限定かを確認して優先順位を決める
- 2026年6月またはそれ以降の累積更新プログラムを適用する
- すぐ更新できなければ、設定値とネットワークを一時的に制限する
- 更新後のビルド、Web応答、認証、監視を確認する
- Windows Server 2012/2012 R2はESU終了前の移行を進める
最も危険なのは、「IISを使っていない」「既定値のはず」「WAFがある」といった推測で影響なしと判断することです。実際の設定、待ち受け状態、ネットワーク到達性を確認し、最終的には修正済み累積更新プログラムを適用することが、CVE-2026-47291への確実な対応です。

コメント