CVE-2026-57089 — Windows SMB Server Network Transport Driver (srvnet.sys) Remote Code Execution Vulnerability
Executive Summary
Use after free in Windows SMB Server Network Transport Driver (srvnet.sys) 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) |
Important | Remote Code Execution | Yes |
| Windows 10 Version 1607 for x64-based Systems | 5099535 (Security Update) |
Important | Remote Code Execution | Yes |
| Windows 10 Version 1809 for 32-bit Systems | 5099538 (Security Update) |
Important | Remote Code Execution | Yes |
| Windows 10 Version 1809 for x64-based Systems | 5099538 (Security Update) |
Important | Remote Code Execution | Yes |
| Windows 10 Version 21H2 for 32-bit Systems | 5099539 (Security Update) |
Important | Remote Code Execution | Yes |
| Windows 10 Version 21H2 for ARM64-based Systems | 5099539 (Security Update) |
Important | Remote Code Execution | Yes |
| Windows 10 Version 21H2 for x64-based Systems | 5099539 (Security Update) |
Important | Remote Code Execution | Yes |
| Windows 10 Version 22H2 for 32-bit Systems | 5099539 (Security Update) |
Important | Remote Code Execution | Yes |
| Windows 10 Version 22H2 for ARM64-based Systems | 5099539 (Security Update) |
Important | Remote Code Execution | Yes |
| Windows 10 Version 22H2 for x64-based Systems | 5099539 (Security Update) |
Important | Remote Code Execution | Yes |
| Windows 11 Version 24H2 for ARM64-based Systems | 5101650 (Security Update) |
Important | Remote Code Execution | Yes |
| Windows 11 Version 24H2 for x64-based Systems | 5101650 (Security Update) |
Important | Remote Code Execution | Yes |
| Windows 11 Version 25H2 for ARM64-based Systems | 5101650 (Security Update) |
Important | Remote Code Execution | Yes |
| Windows 11 Version 25H2 for x64-based Systems | 5101650 (Security Update) |
Important | Remote Code Execution | Yes |
| Windows 11 Version 26H1 for ARM64-based Systems | 5101649 (Security Update) |
Important | Remote Code Execution | Yes |
| Windows 11 version 26H1 for x64-based Systems | 5101649 (Security Update) |
Important | Remote Code Execution | Yes |
| Windows Server 2012 | 5099445 (Monthly Rollup) |
Important | Remote Code Execution | Yes |
| Windows Server 2012 (Server Core installation) | 5099445 (Monthly Rollup) |
Important | Remote Code Execution | Yes |
| Windows Server 2012 R2 | 5099444 (Monthly Rollup) |
Important | Remote Code Execution | Yes |
| Windows Server 2012 R2 (Server Core installation) | 5099444 (Monthly Rollup) |
Important | Remote Code Execution | Yes |
| Windows Server 2016 | 5099535 (Security Update) |
Important | Remote Code Execution | Yes |
| Windows Server 2016 (Server Core installation) | 5099535 (Security Update) |
Important | Remote Code Execution | Yes |
| Windows Server 2019 | 5099538 (Security Update) |
Important | Remote Code Execution | Yes |
| Windows Server 2019 (Server Core installation) | 5099538 (Security Update) |
Important | Remote Code Execution | Yes |
| Windows Server 2022 | 5099540 (Security Update) |
Important | Remote Code Execution | Yes |
| Windows Server 2025 | 5099536 (Security Update) |
Important | Remote Code Execution | Yes |
| Windows Server 2025 (Server Core installation) | 5099536 (Security Update) |
Important | 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 |
5099445 |
Monthly Rollup | Yes |
5099444 |
Monthly Rollup | Yes |
5099540 |
Security Update | Yes |
5099536 |
Security Update | Yes |
Patch Diff
Use-after-free (CWE-416) in the Windows SMB Server Network Transport driver srvnet.sys endpoint/connection lifecycle, unauthenticated remote code execution over the network. srvnet.sys is the SMB server's kernel network transport; SMB endpoints/connections are torn down by SrvNetTdiCloseConnection / SrvNetCloseConnectionWithLock / SrvNetDeregisterClient while network data is delivered to them by the TDI receive handlers (SrvNetTdiReceiveHandler / SrvNetCommonReceiveHandler / SrvNetTdiReceiveCompletion). PRE: an SMB endpoint object could be closed and freed while a receive handler was still processing an in-flight receive on it - a race between connection teardown and network receive that yields a use-after-free of the endpoint. Because srvnet processes attacker-supplied SMB traffic over the network without authentication, the freed-object reuse is a remote code-execution primitive (AV:N; AC:H reflects winning the race). Diff of srvnet.sys 10.0.26100.8521 -> .8875 (Jul 14 2026, KB5101650) confirms the fix: gated behind CFR flag Feature_3107684665, the endpoint gains rundown protection (a rundown ref at endpoint+0x288) - SrvNetAllocateEndpointCommon calls ExInitializeRundownProtection on the new endpoint, the receive handlers ExAcquireRundownProtection before using the endpoint (and ExReleaseRundownProtection after), and SrvNetTdiCloseConnection calls ExWaitForRundownProtectionRelease + ExRundownCompleted before teardown - so the endpoint cannot be freed while a receive is in flight, closing the race/UAF.
| Function | Address | Change | Note |
|---|---|---|---|
SrvNetAllocateEndpointCommon |
code change |
code (rundown protection initialized on the endpoint, CFR-gated) | Post (Feature_3107684665): ExInitializeRundownProtection(endpoint + 0x158/0x288) when allocating the endpoint. |
SrvNetTdiReceiveHandler / SrvNetCommonReceiveHandler |
code change |
code (receive acquires rundown protection, CFR-gated) | Post: ExAcquireRundownProtection(endpoint + 0x288) before processing the receive (and ExReleaseRundownProtection after), so the endpoint is kept alive while a receive is in flight. |
SrvNetTdiCloseConnection |
code change |
code (teardown waits for rundown release, CFR-gated) | Post: ExWaitForRundownProtectionRelease(endpoint + 0x288) then ExRundownCompleted(endpoint + 0x288) before tearing down, so close blocks until all in-flight receives release their reference. |
SrvNetCloseConnectionWithLock / SrvNetDeregisterClient / SrvNetUnpublishClientSlot / SrvNetEndpointReopenTdiConnections |
code change |
code (endpoint lifecycle updated) | Related endpoint close/deregister/reopen paths updated to the rundown-protected lifecycle. |
Feature_3107684665 |
gate |
added (CFR gate) | Primary CFR flag gating the rundown-protected endpoint lifecycle (Feature_1180933432 also present); the original unprotected path still ships when disabled. |
Attack Path
An SMB endpoint is closed/freed while a network receive is still processing it, 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.
Exploits & PoC
Detection Rules
Acknowledgments
Microsoft