CVE-2026-27908 — Windows TDI Translation Driver (tdx.sys) Elevation of Privilege Vulnerability
Executive Summary
Use after free in Windows TDI Translation Driver (tdx.sys) allows an authorized attacker to elevate privileges locally.
Overview
CVSS Vector
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/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 1607 for 32-bit Systems | 5082198 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 1607 for x64-based Systems | 5082198 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 1809 for 32-bit Systems | 5082123 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 1809 for x64-based Systems | 5082123 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 21H2 for 32-bit Systems | 5082200 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 21H2 for ARM64-based Systems | 5082200 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 21H2 for x64-based Systems | 5082200 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 22H2 for 32-bit Systems | 5082200 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 22H2 for ARM64-based Systems | 5082200 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 22H2 for x64-based Systems | 5082200 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 23H2 for ARM64-based Systems | 5082052 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 23H2 for x64-based Systems | 5082052 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 24H2 for ARM64-based Systems | 5083769 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 24H2 for x64-based Systems | 5083769 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 25H2 for ARM64-based Systems | 5083769 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 25H2 for x64-based Systems | 5083769 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 26H1 for ARM64-based Systems | 5083768 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 version 26H1 for x64-based Systems | 5083768 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2012 | 5082127 (Monthly Rollup) |
Important | Elevation of Privilege | Yes |
| Windows Server 2012 (Server Core installation) | 5082127 (Monthly Rollup) |
Important | Elevation of Privilege | Yes |
| Windows Server 2012 R2 | 5082126 (Monthly Rollup) |
Important | Elevation of Privilege | Yes |
| Windows Server 2012 R2 (Server Core installation) | 5082126 (Monthly Rollup) |
Important | Elevation of Privilege | Yes |
| Windows Server 2016 | 5082198 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2016 (Server Core installation) | 5082198 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2019 | 5082123 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2019 (Server Core installation) | 5082123 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2022 | 5082142 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2022 (Server Core installation) | 5082142 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2022, 23H2 Edition (Server Core installation) | 5082060 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2025 | 5082063 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2025 (Server Core installation) | 5082063 (Security Update) |
Important | Elevation of Privilege | Yes |
Patches
| Article | Type | Restart |
|---|---|---|
5082198 |
Security Update | Yes |
5082123 |
Security Update | Yes |
5082200 |
Security Update | Yes |
5082052 |
Security Update | Yes |
5083769 |
Security Update | Yes |
5083768 |
Security Update | Yes |
5082127 |
Monthly Rollup | Yes |
5082126 |
Monthly Rollup | Yes |
5082142 |
Security Update | Yes |
5082060 |
Security Update | Yes |
5082063 |
Security Update | Yes |
Patch Diff
Use-after-free (CWE-416) via a race in the Windows TDI Translation Driver tdx.sys TL endpoint/connection lifecycle, local EoP to SYSTEM (AC:H race). tdx.sys translates legacy TDI calls to TCP/IP; it tracks transport-address / TL-endpoint / connection objects that request paths (TdxIssueListenRequest, TdxIssueQueryAddressRequest, TdxIssueIoControlRequest) use while teardown paths (TdxDeactivateTransportAddress, TdxShutdownEndpointConnection, TdxCleanupObjectHeader) free them. PRE: request paths used the endpoint/connection object without holding a reference under the endpoint lock, so a concurrent deactivate/shutdown could free the object while a request was still using it - a race yielding a use-after-free of the TL endpoint/connection. Because tdx runs in the kernel and the TDI request interface is reachable by a local user, winning the race (AC:H) is a local EoP-to-SYSTEM primitive. Diff of tdx.sys 10.0.26100.7920 -> .8246 (Apr 14 2026, KB5083769) confirms the fix: gated behind CFR flags Feature_490931514 (request paths) and Feature_2411928891 (deactivate), the request handlers now take an explicit reference on the object under the endpoint spinlock before use - TdxIncrementTlEndpointReference / DbgTdxReferenceConnection / DbgTdxReferenceTransportAddress acquired under KeAcquireSpinLockRaiseToDpc(endpoint+2) - and teardown decrements under the same lock (TdxDecrementTlEndpointReference), so the object cannot be freed while a request holds it, closing the race/UAF.
| Function | Address | Change | Note |
|---|---|---|---|
TdxIssueQueryAddressRequest |
code change |
code (reference taken under endpoint lock before use, CFR-gated) | Post (Feature_490931514): under KeAcquireSpinLock(endpoint+2), calls TdxIncrementTlEndpointReference + DbgTdxReferenceConnection before using the connection/endpoint, then releases; prevents concurrent free. |
TdxIssueListenRequest |
code change |
code (transport-address referenced under lock, CFR-gated) | Post (Feature_490931514): DbgTdxReferenceTransportAddress + KeAcquireSpinLockRaiseToDpc around the request issuance. |
TdxDeactivateTransportAddress |
code change |
code (teardown decrements under lock, CFR-gated) | Post (Feature_2411928891): takes the endpoint spinlock and TdxDecrementTlEndpointReference during deactivation so teardown is serialized against in-flight requests. |
DbgTdxReferenceConnection / DbgTdxDereferenceConnection / TdxDecrementTlEndpointReference / TdxCleanupObjectHeader / TdxShutdownEndpointConnection |
code change |
code (reference lifecycle reworked) | Connection/endpoint reference and cleanup paths updated to the take-reference-under-lock discipline. |
Feature_490931514 / Feature_2411928891 |
gate |
added (CFR gate) | CFR flags gating the reference-under-lock request paths and the serialized teardown; the original unsynchronized paths still ship when disabled. |
Attack Path
A TDI request uses a TL endpoint/connection object that a concurrent teardown frees, causing a UAF
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.