
CVE‑2026‑20805:Windows 桌面窗口管理器(Desktop Window Manager)的一个漏洞,可导致本地信息泄露。需要低权限,无需用户交互。CVSS 评分为 5.5(中危)。已被积极利用,并列入 CISA KEV 清单;补丁已于 2026 年 1 月发布。
CVE‑2026‑20805:Windows 桌面窗口管理器(Desktop Window Manager)的一个缺陷,可导致本地信息泄露。需要低权限,无需用户交互。CVSS 评分为 5.5(中危)。已被积极利用,并列入 CISA KEV 目录;补丁已于 2026 年 1 月发布。
CVE 2026 20805 是桌面窗口管理器(DWM)中的一个信息泄露缺陷——DWM 是渲染桌面、合成窗口以及加速基于 GPU 的 UI 的核心组件。
为何重要:该缺陷允许具有低权限的本地攻击者读取本应仅限于其他会话或进程的数据。
| 属性 | 值 |
|---|
| CWE‑200:向未授权行为者暴露敏感信息 | ✓ |
| 攻击向量 | 本地 |
| 所需权限 | 低 |
| 用户交互 | 无 |
| 影响——机密性 | 高 |
| 影响——完整性 | 无 |
| 影响——可用性 | 无 |
| CVSS 3.1 基础评分 | 5.5(中危) |
DWM 负责编排 GPU 内存、窗口缓冲区以及进程间 UI 表面。它是一个高价值目标,因为它将来自多个进程的数据聚合到共享的 GPU 空间中;此处的缺陷可能会跨用户泄露凭据或会话数据。
DWM 在现代 Windows 中的角色:
该漏洞利用了窗口缓冲区索引上缺乏边界检查的问题;这允许攻击者读取相邻的 GPU 内存并获取由其他进程存储的机密信息。
根据 NVD 的 CPE 列表,Windows 10.0.19041(及其衍生版本)受到影响。
以下是概念性的利用流程:
CreateProcess 以最低权限获取 DWM 进程的句柄。# Windows 10.0.19041 – DWM 缓冲区读取漏洞利用
$processHandle = Get-Process -Name dwm | Select-Object -ExpandProperty Id
$bufferOffset = 0x00120000 # 指向相邻 GPU 内存的构造偏移量
$targetWindow = 0x00030001 # 目标窗口索引
# 在内核空间创建临时缓冲区
$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/main/:CopyMemory(
$processHandle,
$bufferOffset,
$kernelBuffer,
0x1000)
# 将内核缓冲区复制到 DWM 的合成例程中
Invoke-DwmRead -ProcessId $processHandle `
-WindowIndex $targetWindow `
-SrcAddress $bufferOffset `
-Size 0x1000
# 将暴露的数据转储到本地文件以供分析
$dumpPath = "C:\Temp\DwmLeak.txt"
[IO.File]::WriteAllBytes($dumpPath, $kernelBuffer)
该脚本演示了攻击者如何利用 DWM 的 GPU 内存来读取隐藏数据。
针对 CVE‑2026‑20805 的检测侧重于识别与 dwm.exe 的异常交互以及异常的 GPU 相关遥测数据。该漏洞利用依赖于使用构造偏移量读取 GPU 支持的缓冲区,因此防御者应监控桌面窗口管理器行为的偏差。
0x2B(DisplayUpdate)这些来源提供了对进程创建、句柄访问和 GPU 更新活动的可见性。
dwm.exe 的重复 CreateProcess 事件,尤其是当父进程不是 explorer.exe 时。DisplayUpdate(0x2B)事件后跟使用异常缓冲区大小或偏移量的内存读取。
SrcAddress: 0x00120000Size: 0x1000dwm.exe 的 HandleOpen 事件与 GPU ETW 活动突发之间的关联。title: DWM GPU 内存读取异常
id: dwm-gpu-memory-read-anomaly
status: experimental
description: 检测可能表明利用 CVE-2026-20805 的异常 DWM 缓冲区读取。
author: Mark
logsource:
product: windows
service: system
detection:
selection:
EventID: 0x2B
ProcessName: dwm.exe
SrcAddress: 0x00120000
Size: 0x1000
condition: selection
falsepositives:
- 高 GPU 渲染工作负载
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
Microsoft 针对 CVE 2026 20805 的安全公告包含一个补丁,该补丁在复制 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 已知被利用漏洞目录,凸显了其现实世界中的相关性。通过应用所概述的缓解、检测和补丁策略,组织可以降低风险,同时提高对 GPU 内存流的可见性。