Critical CVSS 8.8 EPSS 0.00291 🔬 Patch diffed 2026-07 archive

Executive Summary

Concurrent execution using shared resource with improper synchronization ('race condition') in Windows TCP/IP allows an unauthorized attacker to execute code over an adjacent network.

Overview

8.8
CVSS HIGH
Critical
MS Severity
Not Exploited
MS Exploit Status
Less Likely
MS Exploit Likelihood
Category Remote Code Execution
Released Jul 14 2026
Last Updated Jul 14 2026
Publicly Disclosed No
CISA KEV Not Listed
Known Exploits None Known
EPSS Score 0.00291 — 0.21547 percentile
NVD CVSS 8.8 HIGH — matches MSRC

CVSS Vector

CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H/E:U/RL:O/RC:C
ATTACK VECTOR
Adjacent_network
ATTACK COMPLEXITY
Low
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.7

EPSS Score

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

Affected Products

27 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 5101649 (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

9 patches
Article Type Restart
5099535 Security Update Yes
5099538 Security Update Yes
5099539 Security Update Yes
5101650 Security Update Yes
5101649 Security Update Yes
5099445 Monthly Rollup Yes
5099444 Monthly Rollup Yes
5099540 Security Update Yes
5099536 Security Update Yes

Patch Diff

ghidriff · tcpip.sys (KB5101649)

Race condition (CWE-362) in the Windows TCP/IP driver tcpip.sys wake-port-entry teardown, unauthenticated remote code execution over an adjacent network (Critical, AV:A, CVSS 8.8). tcpip.sys maintains a list of wake port entries (network-wake / low-power port registration); InetWakeAcquirePortAf acquires/creates an entry under a spin lock and entries are removed/freed during teardown. PRE: the teardown performed its list-consistency check and then unlinked and freed the entry (ExFreePoolWithTag) OUTSIDE the protecting lock, so two paths could operate on the same entry concurrently - freeing it while still referenced or freeing it twice. Because the wake port-registration path is reachable via attacker-supplied adjacent-network traffic without authentication, the freed-object reuse is an RCE primitive (Critical 8.8). Diff of tcpip.sys 10.0.28000.2113 (KB5089548) -> .2525 (KB5101649, Jul 14 2026, 26H1) confirms the fix: gated behind CFR flag Feature_2930222395, InetWakeAcquirePortAf now maintains an in-flight word at entry +0x14 under the lock and moves the removal into the new idempotent helper InetWakeRemovePortEntryIfPresent (no PRE counterpart); the unlink becomes idempotent and the free is conditional on the in-flight state so only one side performs the final release. Note: the July tcpip.sys update is very large (55 code changes / 171 modified); most is unrelated churn (e.g. a Feature_TCPIP_Stack_Var_To_Heap_* pool refactor around UdpConnectRedirect) - the isolable fix for this CVE is the wake-port-entry teardown under Feature_2930222395. Stated at confirmed-changed level.

Pre-patch version 10.0.28000.2113 Download
Post-patch version 10.0.28000.2525 Download
Function Address Change Note
InetWakeAcquirePortAf code change code (wake-port-entry teardown made race-safe, CFR-gated) Pre: list-consistency check then unlink + ExFreePoolWithTag outside the lock (double-free / free-while-in-use). Post (Feature_2930222395): maintains an in-flight word at entry +0x14 under the lock and calls the new idempotent InetWakeRemovePortEntryIfPresent; free conditional on in-flight state so only one side does the final release.
InetWakeRemovePortEntryIfPresent (added) code change added (idempotent port-entry removal) New helper with no pre-patch counterpart; makes the wake-port-entry unlink idempotent so a concurrent teardown cannot double-free the entry.
Feature_2930222395 gate added (CFR gate) CFR flag gating the race-safe wake-port-entry teardown; the original unsynchronized free ships when disabled. (Distinct from the Feature_TCPIP_Stack_Var_To_Heap_* pool refactor elsewhere in the same update, which is not this CVE.)
View full diff report View RCA report

Attack Path

A race between wake-port-entry teardown and use frees the entry while still referenced

Attack path for CVE-2026-54999 A race between wake-port-entry teardown and use frees the entry while still referenced 01 — ENTRY Unauthenticated attacker sends crafted adjacent-network traffic tcpip.sys drives the wake port-entry acquire/teardown paths (InetWakeAcquirePortAf). AV:A / PR:N / UI:N (adjacent network, no auth). 02 — CONTROLLED INPUT Races a port-entry teardown against its concurrent use The attacker times traffic so a teardown runs while the same wake port entry is still referenced. 03 — MISSING CHECK Port entry unlinked/freed outside the lock (CWE-362) Pre-patch the unlink and ExFreePoolWithTag happen outside the protecting lock, so the entry is freed while in use or freed twice. 04 — IMPACT Freed port-entry reuse -> remote code execution The freed pool object is reclaimed/reused in the kernel TCP/IP driver, giving an unauthenticated adjacent-network attacker code execution (Critical, 8.8).

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

Owen McCullough with MSRC V&M