Important CVSS 7 EPSS 0.00767 🔬 Patch diffed 2026-02 archive

Executive Summary

Use after free in Mailslot File System allows an authorized attacker to elevate privileges locally.

Overview

7
CVSS HIGH
Important
MS Severity
Not Exploited
MS Exploit Status
More Likely
MS Exploit Likelihood
Category Elevation of Privilege
Released Feb 10 2026
Last Updated Feb 10 2026
Publicly Disclosed No
CISA KEV Not Listed
Known Exploits None Known
EPSS Score 0.00767 — 0.52394 percentile
NVD CVSS 7 HIGH — matches MSRC

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
ATTACK VECTOR
Local
ATTACK COMPLEXITY
High
PRIVILEGES REQUIRED
Low
USER INTERACTION
None
SCOPE
Unchanged
CONFIDENTIALITY
High
INTEGRITY
High
AVAILABILITY
High
EXPLOIT CODE MATURITY
Unproven
REMEDIATION LEVEL
Official Fix
REPORT CONFIDENCE
Confirmed
Temporal Score: 6.1

EPSS Score

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

Affected Products

23 affected products
Product KB Article Severity Impact Restart Required
Windows 10 Version 1607 for 32-bit Systems 5075999 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 1607 for x64-based Systems 5075999 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 1809 for 32-bit Systems 5075904 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 1809 for x64-based Systems 5075904 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 21H2 for 32-bit Systems 5075912 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 21H2 for ARM64-based Systems 5075912 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 21H2 for x64-based Systems 5075912 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 22H2 for 32-bit Systems 5075912 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 22H2 for ARM64-based Systems 5075912 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 22H2 for x64-based Systems 5075912 (Security Update) Important Elevation of Privilege Yes
Windows 11 Version 23H2 for ARM64-based Systems 5075941 (Security Update) Important Elevation of Privilege Yes
Windows 11 Version 23H2 for x64-based Systems 5075941 (Security Update) Important Elevation of Privilege Yes
Windows 11 Version 24H2 for ARM64-based Systems 5077181 (Security Update) 5077212 (Security Hotpatch Update) Important Elevation of Privilege 5073379 Base: 7.0 Temporal: 6.1 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 10.0.26100.7840 10.0.26100.7781 Yes None Windows 11 Version 24H2 for x64-based Systems 5077212 (Security Hotpatch Update) 5077181 (Security Update) Important Elevation of Privilege 5074109 Base: 7.0 Temporal: 6.1 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 10.0.26100.7781 10.0.26100.7840 Yes None Windows 11 Version 25H2 for ARM64-based Systems 5077181 (Security Update) 5077212 (Security Hotpatch Update) Important Elevation of Privilege 5074109 Base: 7.0 Temporal: 6.1 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 10.0.26200.7840 10.0.26200.7781 Yes None Windows 11 Version 25H2 for x64-based Systems 5077181 (Security Update) 5077212 (Security Hotpatch Update) Important Elevation of Privilege 5074109 Base: 7.0 Temporal: 6.1 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 10.0.26200.7840 10.0.26200.7781 Yes None Windows 11 Version 26H1 for ARM64-based Systems 5077179 (Security Update) Important Elevation of Privilege Yes
Windows 11 version 26H1 for x64-based Systems 5077179 (Security Update) Important Elevation of Privilege Yes
Windows Server 2012 5075971 (Monthly Rollup) Important Elevation of Privilege Yes
Windows Server 2012 (Server Core installation) 5075971 (Monthly Rollup) Important Elevation of Privilege Yes
Windows Server 2012 R2 5075970 (Monthly Rollup) Important Elevation of Privilege Yes
Windows Server 2012 R2 (Server Core installation) 5075970 (Monthly Rollup) Important Elevation of Privilege Yes
Windows Server 2016 5075999 (Security Update) Important Elevation of Privilege Yes
Windows Server 2016 (Server Core installation) 5075999 (Security Update) Important Elevation of Privilege Yes
Windows Server 2019 5075904 (Security Update) Important Elevation of Privilege Yes
Windows Server 2019 (Server Core installation) 5075904 (Security Update) Important Elevation of Privilege Yes
Windows Server 2022 5075906 (Security Update) 5075943 (Security Hotpatch Update) Important Elevation of Privilege 5073457 Base: 7.0 Temporal: 6.1 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 10.0.20348.4773 10.0.20348.4711 Yes None Windows Server 2022 (Server Core installation) 5075906 (Security Update) 5075943 (Security Hotpatch Update) Important Elevation of Privilege 5073457 Base: 7.0 Temporal: 6.1 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 10.0.20348.4773 10.0.20348.4711 Yes None Windows Server 2022, 23H2 Edition (Server Core installation) 5075897 (Security Update) Important Elevation of Privilege Yes

Patches

8 patches
Article Type Restart
5075999 Security Update Yes
5075904 Security Update Yes
5075912 Security Update Yes
5075941 Security Update Yes
5077179 Security Update Yes
5075971 Monthly Rollup Yes
5075970 Monthly Rollup Yes
5075897 Security Update Yes

Patch Diff

ghidriff · msfs.sys (KB5077181)

Cancel-routine race use-after-free (CWE-416) in the Windows Mailslot file-system driver msfs.sys MsAddDataQueueEntry. On the blocking (a2==0) path, pre-patch the IRP was linked into the mailslot data-queue list FIRST and only then had its cancel routine installed via MsSetCancelRoutine. If another thread calls CancelIo in that gap, the cancel routine is still NULL so the I/O manager only sets the IRP Cancel flag; the code never re-checked the flag, so the cancellation is lost and the IRP stays permanently queued. When the mailslot FCB/CCB are later freed, the still-queued IRP references freed memory -> UAF. Diff of msfs.sys 10.0.26100.4202 -> .7824 confirms the fix: gated behind CFR flag Feature_1829438777, MsAddDataQueueEntry now atomically installs the cancel routine (*(irp+0x68)=MsCancelDataQueueIrp via _InterlockedExchange64), immediately checks the Cancel flag, and if already cancelled removes the IRP with MsRemoveDataQueueIrp and completes it with STATUS_CANCELLED. The Feb KB5077181 (.7840) ships it enabled. Note: our diff shows Feature_1829438777, differing from the circulated screenshots' Feature_2097874233 (build/arch difference); the set-then-recheck cancel protocol is identical.

Pre-patch version 10.0.26100.4202 Download
Post-patch version 10.0.26100.7824 Download
Function Address Change Note
MsAddDataQueueEntry code change code (set-then-recheck cancel protocol, CFR-gated) Pre (a2==0): enqueue IRP, then MsSetCancelRoutine - cancel arriving in the gap is lost (routine NULL, only Cancel flag set), IRP stays queued -> UAF when FCB/CCB freed. Post (Feature_1829438777 enabled): _InterlockedExchange64 install MsCancelDataQueueIrp; if Cancel flag set and exchange back to 0 succeeds -> MsRemoveDataQueueIrp + STATUS_CANCELLED.
Feature_1829438777 gate added (CFR gate) CFR flag gating the atomic cancel-routine-set + Cancel-flag recheck; original racy path (MsSetCancelRoutine_Unpatched) still ships when disabled.
View full diff report View RCA report

Attack Path

A blocking mailslot IRP is enqueued before its cancel routine is set, so a racing CancelIo is lost and the IRP dangles over freed memory

Attack path for CVE-2026-21253 A blocking mailslot IRP is enqueued before its cancel routine is set, so a racing CancelIo is lost and the IRP dangles over freed memory 01 — ENTRY Local low-priv process issues a blocking read on a mailslot msfs.sys MsAddDataQueueEntry parks the IRP on the mailslot data queue and installs a cancel routine. AV:L/PR:L, AC:H (race). 02 — CONTROLLED INPUT A second thread calls CancelIo in the window between enqueue and cancel-routine install Pre-patch the IRP is linked into the queue first; the cancel routine is still NULL when CancelIo lands. 03 — PATH The I/O manager only sets the IRP Cancel flag (no routine to call) Because no cancel routine is installed yet, cancellation just flags the IRP; the code never re-checks the flag after setting the routine. 04 — MISSING CHECK The cancellation is lost and the IRP remains permanently queued (CWE-416) The orphaned IRP is never removed or completed; it stays on the mailslot data queue. 05 — PRIMITIVE Mailslot FCB/CCB freed -> queued IRP references freed memory -> UAF -> EoP Later teardown frees the objects the dangling IRP points at. The Feb 2026 fix (Feature_1829438777) atomically sets the cancel routine, rechecks the Cancel flag, and removes+completes the IRP with STATUS_CANCELLED if already cancelled.

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

Anonymous