CVE-2026-50694 — Windows Secure Socket Tunneling Protocol (SSTP) Remote Code Execution Vulnerability
Executive Summary
Use after free in Windows Secure Socket Tunneling Protocol (SSTP) allows an unauthorized attacker to execute code over a network.
Overview
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/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 | 5099535 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows 10 Version 1607 for x64-based Systems | 5099535 (Security Update) |
Critical | Remote Code Execution | Yes |
| 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 2012 | 5099445 (Monthly Rollup) |
Critical | Remote Code Execution | Yes |
| Windows Server 2012 (Server Core installation) | 5099445 (Monthly Rollup) |
Critical | Remote Code Execution | Yes |
| Windows Server 2012 R2 | 5099444 (Monthly Rollup) |
Critical | Remote Code Execution | Yes |
| Windows Server 2012 R2 (Server Core installation) | 5099444 (Monthly Rollup) |
Critical | Remote Code Execution | Yes |
| Windows Server 2016 | 5099535 (Security Update) |
Critical | Remote Code Execution | Yes |
| Windows Server 2016 (Server Core installation) | 5099535 (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 |
|---|---|---|
5099535 |
Security Update | Yes |
5099538 |
Security Update | Yes |
5099539 |
Security Update | Yes |
5101650 |
Security Update | Yes |
5101649 |
Security Update | Yes |
5095051 |
Security Update | Yes |
5099445 |
Monthly Rollup | Yes |
5099444 |
Monthly Rollup | Yes |
5099540 |
Security Update | Yes |
5099536 |
Security Update | Yes |
Patch Diff
Use-after-free (CWE-416) via an unsynchronized handle lookup in the Windows SSTP service sstpsvc.dll, Critical pre-auth network RCE. The service resolves a client-supplied 32-bit handle to a connection object through the handle table (SstpSvcGlobals index 22). PRE: HfGetPointerFromHandle32 was called WITHOUT holding the handle-table lock, and the object's lifetime reference was acquired outside that lock; only the object's own critical section (obj+288) was entered afterward. A concurrent handle removal (which takes the table lock) could remove the handle and drop the last reference, freeing the object, in the window between the lockless lookup and its use -> UAF. Diff of sstpsvc.dll 10.0.26100.8737 -> .8875 (Jul 14 2026, KB5101650) confirms the fix: gated behind CFR flag Feature_1207409977, the lookup AND the reference increment (obj+0xD0) are moved inside the handle-table critical section (SstpSvcGlobals+0xB8 / +184), synchronizing with concurrent handle removal that needs the same lock; release paths DereferenceRefCount(obj+0xD0). The object's own critical section is still acquired at the same later point. Note: our diff shows Feature_1207409977 (build/arch); the lookup+AddRef-under-table-lock is as described. AV:N/AC:H/PR:N.
| Function | Address | Change | Note |
|---|---|---|---|
HfGetPointerFromHandle32 caller (SSTP handle-resolve path) |
code change |
code (lookup+AddRef moved under table lock, CFR-gated) | Pre: HfGetPointerFromHandle32(table, handle, &obj) with no table lock; ref taken outside the lock; only obj+288 critical section entered later. Post (Feature_1207409977): EnterCriticalSection(SstpSvcGlobals+0xB8); lookup; if found, obj+0xD0 refcount++ ; LeaveCriticalSection - so lookup+AddRef are atomic vs concurrent handle removal. |
Feature_1207409977 |
gate |
added (CFR gate) | CFR flag gating the table-lock-synchronized lookup/AddRef; original lockless path still ships when disabled. |
Attack Path
SSTP resolves a client handle to an object without the table lock, so a concurrent handle removal frees it mid-use
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.
Known Exploits
Acknowledgments
Microsoft has not published researcher acknowledgments for this CVE, or they are not yet reflected in our data source. Check the MSRC advisory directly for the most current credit information.