Critical CVSS 8.1 EPSS 0.0056 🔬 Patch diffed 2026-08 archive

Executive Summary

Double free in Windows Secure Socket Tunneling Protocol (SSTP) allows an unauthorized attacker to execute code over a network.

Overview

8.1
CVSS HIGH
Critical
MS Severity
Not Exploited
MS Exploit Status
Less Likely
MS Exploit Likelihood
Category Remote Code Execution
Released Aug 11 2026
Last Updated Aug 11 2026
Publicly Disclosed No
CISA KEV Not Listed
Known Exploits None Known
EPSS Score 0.0056 — 0.43812 percentile
NVD CVSS 8.1 HIGH — matches MSRC

CVSS Vector

CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C
ATTACK VECTOR
Network
ATTACK COMPLEXITY
High
PRIVILEGES REQUIRED
None
USER INTERACTION
None
SCOPE
Unchanged
CONFIDENTIALITY
High
INTEGRITY
High
AVAILABILITY
High
EXPLOIT CODE MATURITY
Unproven
REMEDIATION LEVEL
Official Fix
REPORT CONFIDENCE
Confirmed
Temporal Score: 7.1

EPSS Score

0.0056
probability of exploitation in the next 30 days
0.43812 percentile - updated 2026-08-14
View on FIRST.org

Affected Products

22 affected products
Product KB Article Severity Impact Restart Required
Windows 10 Version 1607 for 32-bit Systems 5120418 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 1607 for x64-based Systems 5120418 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 1809 for 32-bit Systems 5120238 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 1809 for x64-based Systems 5120238 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 21H2 for 32-bit Systems 5120249 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 21H2 for ARM64-based Systems 5120249 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 21H2 for x64-based Systems 5120249 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 22H2 for 32-bit Systems 5120249 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 22H2 for ARM64-based Systems 5120249 (Security Update) Critical Remote Code Execution Yes
Windows 10 Version 22H2 for x64-based Systems 5120249 (Security Update) Critical Remote Code Execution Yes
Windows 11 Version 23H2 for ARM64-based Systems 5120240 (Security Update) Critical Remote Code Execution Yes
Windows 11 Version 23H2 for x64-based Systems 5120240 (Security Update) Critical Remote Code Execution Yes
Windows 11 Version 24H2 for ARM64-based Systems 5120994 (Security Hotpatch Update) 5121003 (Security Update) Critical Remote Code Execution 5101650 Base: 8.1 Temporal: 7.1 Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C 10.0.26100.9106 10.0.26100.9168 Yes None Windows 11 Version 24H2 for x64-based Systems 5121003 (Security Update) 5120994 (Security Hotpatch Update) Critical Remote Code Execution 5101650 Base: 8.1 Temporal: 7.1 Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C 10.0.26100.9168 10.0.26000.9106 Yes None Windows 11 Version 25H2 for ARM64-based Systems 5121003 (Security Update) 5120994 (Security Hotpatch Update) Critical Remote Code Execution 5101650 Base: 8.1 Temporal: 7.1 Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C 10.0.26200.9168 10.0.26100.9106 Yes None Windows 11 Version 25H2 for x64-based Systems 5121003 (Security Update) 5120994 (Security Hotpatch Update) Critical Remote Code Execution 5101650 Base: 8.1 Temporal: 7.1 Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C 10.0.26200.9168 10.0.26100.9106 Yes None Windows 11 Version 26H1 for ARM64-based Systems 5121000 (Security Update) Critical Remote Code Execution Yes
Windows 11 version 26H1 for x64-based Systems 5121000 (Security Update) Critical Remote Code Execution Yes
Windows Server 2012 5120386 (Monthly Rollup) Critical Remote Code Execution Yes
Windows Server 2012 (Server Core installation) 5120386 (Monthly Rollup) Critical Remote Code Execution Yes
Windows Server 2012 R2 5120385 (Monthly Rollup) Critical Remote Code Execution Yes
Windows Server 2012 R2 (Server Core installation) 5120385 (Monthly Rollup) Critical Remote Code Execution Yes
Windows Server 2016 5120418 (Security Update) Critical Remote Code Execution Yes
Windows Server 2016 (Server Core installation) 5120418 (Security Update) Critical Remote Code Execution Yes
Windows Server 2019 5120238 (Security Update) Critical Remote Code Execution Yes
Windows Server 2019 (Server Core installation) 5120238 (Security Update) Critical Remote Code Execution Yes

Patches

7 patches
Article Type Restart
5120418 Security Update Yes
5120238 Security Update Yes
5120249 Security Update Yes
5120240 Security Update Yes
5121000 Security Update Yes
5120386 Monthly Rollup Yes
5120385 Monthly Rollup Yes

Patch Diff

ghidriff · sstpsvc.dll (KB5121003)

Double free (CWE-415) via a race in the Windows Secure Socket Tunneling Protocol service sstpsvc.dll SSTP-over-HTTP call-context handling, unauthenticated remote code execution (AV:N, AC:H race). SSTP tunnels PPP over HTTPS; sstpsvc processes HTTP request/response call contexts, each reference-counted (a refcount field at context+0xd0) and freed when the count reaches zero. The HTTP receive-completion callback SstpWebReceiveResponseCompletion drops the call-context reference (DereferenceRefCount(ctx+0xd0)); disconnect/cleanup paths (DisconnectServerHttpCallContext / InitiateCallContextCleanup / HttpThreadPoolRequestQueueCallback) also release it. PRE: under a race between the receive-completion path and the disconnect/cleanup path, the call-context reference could be dropped twice (or the context freed twice), a double free that corrupts the heap. Because the service is reachable over the network without authentication, the double free is a remote code-execution primitive (Microsoft rates it Critical, AC:H race). Diff of sstpsvc.dll 10.0.26100.8875 -> .9168 (Aug 11 2026, KB5121003) confirms the fix: gated behind CFR flag Feature_1207409977, SstpWebReceiveResponseCompletion restructures the DereferenceRefCount(ctx+0xd0) handling to use a null-guarded local (lVar10) so the call-context reference is dropped exactly once per path, and the surrounding cleanup (InitiateCallContextCleanup / DisconnectServerHttpCallContext / DereferenceRefCount) is reworked so the context is freed once. Note: the double-free fix is confirmed as the Feature_1207409977-gated rework of the call-context reference drop; the exact doubly-freed allocation is the reference-counted SSTP call context (freed at refcount zero).

Pre-patch version 10.0.26100.8875 Download
Post-patch version 10.0.26100.9168 Download
Function Address Change Note
SstpWebReceiveResponseCompletion code change code (call-context reference drop made single-path, CFR-gated) Pre: DereferenceRefCount((int*)(ctx+0xd0)) dropped the call-context reference in a way that, racing the disconnect/cleanup path, could drop/free the context twice. Post (Feature_1207409977): uses a null-guarded local (lVar10) so the reference is dropped exactly once per path.
DereferenceRefCount / InitiateCallContextCleanup / DisconnectServerHttpCallContext code change code (context reference/cleanup reworked) Call-context reference release and cleanup ordering reworked so the reference-counted context is freed once across the completion/disconnect race.
Feature_1207409977 gate added (CFR gate) CFR flag (with Feature_2530182457) gating the single-drop reference handling; the original path still ships when disabled.
View full diff report View RCA report

Attack Path

An SSTP call context's reference is dropped twice in the HTTP receive-completion vs disconnect race, freeing it twice

Attack path for CVE-2026-62889 An SSTP call context's reference is dropped twice in the HTTP receive-completion vs disconnect race, freeing it twice 01 — ENTRY Remote unauthenticated attacker connects to the SSTP service sstpsvc.dll processes SSTP-over-HTTPS call contexts, each reference-counted (refcount at ctx+0xd0). AV:N/PR:N/AC:H (race). 02 — CONTROLLED INPUT Sends crafted packets to race receive-completion against disconnect/cleanup SstpWebReceiveResponseCompletion and the disconnect/cleanup path both release the same call context. 03 — MISSING CHECK The call-context reference is dropped twice (CWE-415) Racing DereferenceRefCount(ctx+0xd0) drops the reference to zero and frees the context on both paths -> double free. 04 — PATH Double free corrupts the service heap Controlling the freed/reused call-context allocation enables memory corruption. 05 — PRIMITIVE Double free in the network-facing SSTP service -> RCE The Aug 2026 fix (Feature_1207409977) restructures the reference drop so the context is freed exactly once.

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

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.