CVE-2026-50382 — DirectX Graphics Kernel Remote Code Execution Vulnerability
Executive Summary
Untrusted pointer dereference in Windows DirectX allows an authorized attacker to execute code locally.
Overview
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H/E:U/RL:O/RC:C
EPSS Score
Affected Products
| Product | KB Article | Severity | Impact | Restart Required |
|---|---|---|---|---|
| Windows 10 Version 1809 for 32-bit Systems | 5099538 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 1809 for x64-based Systems | 5099538 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 21H2 for 32-bit Systems | 5099539 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 21H2 for ARM64-based Systems | 5099539 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 21H2 for x64-based Systems | 5099539 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 22H2 for 32-bit Systems | 5099539 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 22H2 for ARM64-based Systems | 5099539 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 22H2 for x64-based Systems | 5099539 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 11 Version 24H2 for ARM64-based Systems | 5101650 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 11 Version 24H2 for x64-based Systems | 5101650 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 11 Version 25H2 for ARM64-based Systems | 5101650 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 11 Version 25H2 for x64-based Systems | 5101650 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 11 Version 26H1 for ARM64-based Systems | 5101649 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 11 version 26H1 for x64-based Systems | 5095051 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2019 | 5099538 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2019 (Server Core installation) | 5099538 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2022 | 5099540 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2025 | 5099536 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2025 (Server Core installation) | 5099536 (Security Update) |
Critical | Remote Code Execution | Yes |
Patches
| Article | Type | Restart |
|---|---|---|
5099538 |
Security Update | Yes |
5099539 |
Security Update | Yes |
5101650 |
Security Update | Yes |
5101649 |
Security Update | Yes |
5095051 |
Security Update | Yes |
5099540 |
Security Update | Yes |
5099536 |
Security Update | Yes |
Patch Diff
Untrusted pointer dereference (CWE-822) in the DirectX Graphics Kernel dxgkrnl.sys host virtual-GPU VMBus provider, Hyper-V guest-to-host remote code execution (Critical, AV:L, PR:L, Scope:Changed, CVSS 8.8). On a Hyper-V host, DXG_HOST_VIRTUALGPU_VMBUS::VmBusQueryAdapterInfo services a guest's D3DKMT QueryAdapterInfo request forwarded over VMBus: it copies the guest's private driver data into a host buffer and passes the request - including the guest-supplied Type - to DxgkQueryAdapterInfoImpl. PRE: the guest-controlled Type reached the implementation unfiltered; for Type == KMTQAITYPE_PHYSICALADAPTERPNPKEY (0x29) the implementation dereferences a pointer derived from the request data - an untrusted pointer dereference executed in the host kernel on behalf of the guest. Because a low-privileged guest actor can drive this against the host (Scope changes from guest to host), it is a guest-to-host RCE primitive (Critical 8.8). Diff of dxgkrnl.sys 10.0.26100.8737 -> .8875 (Jul 14 2026, KB5101650, 24H2/Server 2025) confirms the fix: gated behind CFR flag Feature_2095820091, VmBusQueryAdapterInfo (ratio 0.63) now rejects Type == 0x29 over VMBus - it logs a triage event (DxgkLogTriageEvent 'Unsupported QueryAdapterInfo type over VMBus: 0x%I64x') and returns STATUS_INVALID_PARAMETER instead of calling DxgkQueryAdapterInfoImpl. Confirmation level: the fix rejects the query type at the VMBus boundary; the exact pointer dereference inside DxgkQueryAdapterInfoImpl was not traced, so no specific memory-corruption primitive is asserted. Cross-checked against an independent writeup (function, string, and 0x29 constant match the ghidriff; the writeup cites Feature_2364255544 while the ghidriff shows Feature_2095820091).
| Function | Address | Change | Note |
|---|---|---|---|
DXG_HOST_VIRTUALGPU_VMBUS::VmBusQueryAdapterInfo |
code change |
code (rejects KMTQAITYPE_PHYSICALADAPTERPNPKEY (0x29) over VMBus, CFR-gated) | Pre: passed the guest-controlled Type straight to DxgkQueryAdapterInfoImpl. Post (Feature_2095820091, ratio 0.63): if (feature && Type == 0x29) { WdLogSingleEntry1(2); DxgkLogTriageEvent(...,'Unsupported QueryAdapterInfo type over VMBus: 0x%I64x'); return STATUS_INVALID_PARAMETER; } else DxgkQueryAdapterInfoImpl(...). Blocks the untrusted-pointer-dereference query type at the guest->host boundary. |
Feature_2095820091 |
gate |
added (CFR gate) | CFR flag gating the VMBus QueryAdapterInfo type restriction; the original unfiltered path ships when disabled. (An independent writeup cites Feature_2364255544 for the same fix.) |
Attack Path
A guest VM's QueryAdapterInfo(PHYSICALADAPTERPNPKEY) over VMBus drives an untrusted pointer dereference in the host kernel
Derived from the patch delta: the checks added by the vendor identify which fields crossed a trust boundary unvalidated. Reachability and privilege are taken from the call chain in the RCA report.
Exploits & PoC
Detection Rules
Acknowledgments
pwn2addr