CVE-2026-21253 — Mailslot File System Elevation of Privilege Vulnerability
Executive Summary
Use after free in Mailslot File System allows an authorized attacker to elevate privileges locally.
Overview
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
EPSS Score
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
| 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
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.
| 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. |
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
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