CVE-2026-26184 — Windows Projected File System Elevation of Privilege Vulnerability
Executive Summary
Buffer over-read in Windows Projected File System allows an authorized attacker to elevate privileges locally.
Overview
CVSS Vector
CVSS:3.1/AV:L/AC:L/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 1809 for 32-bit Systems | 5082123 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 1809 for x64-based Systems | 5082123 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 21H2 for 32-bit Systems | 5082200 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 21H2 for ARM64-based Systems | 5082200 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 21H2 for x64-based Systems | 5082200 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 22H2 for 32-bit Systems | 5082200 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 22H2 for ARM64-based Systems | 5082200 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 22H2 for x64-based Systems | 5082200 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 23H2 for ARM64-based Systems | 5082052 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 23H2 for x64-based Systems | 5082052 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 24H2 for ARM64-based Systems | 5083769 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 24H2 for x64-based Systems | 5083769 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 25H2 for ARM64-based Systems | 5083769 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 25H2 for x64-based Systems | 5083769 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 26H1 for ARM64-based Systems | 5083768 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 version 26H1 for x64-based Systems | 5083768 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2019 | 5082123 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2019 (Server Core installation) | 5082123 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2022 | 5082142 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2022 (Server Core installation) | 5082142 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2022, 23H2 Edition (Server Core installation) | 5082060 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2025 | 5082063 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2025 (Server Core installation) | 5082063 (Security Update) |
Important | Elevation of Privilege | Yes |
Patches
| Article | Type | Restart |
|---|---|---|
5082123 |
Security Update | Yes |
5082200 |
Security Update | Yes |
5082052 |
Security Update | Yes |
5083769 |
Security Update | Yes |
5083768 |
Security Update | Yes |
5082142 |
Security Update | Yes |
5082060 |
Security Update | Yes |
5082063 |
Security Update | Yes |
Patch Diff
Buffer over-read (CWE-126) in the Windows Projected File System minifilter prjflt.sys PrjfPortConnect, local EoP. The ProjFS filter-port connect callback receives a client _PRJ_CONNECTION_CONTEXT with a VolumeLength field and an inline szVolume (a WCHAR string). PRE: it validated `SizeOfContext >= ConnectionContext->VolumeLength + 0x16`, treating the WCHAR count VolumeLength as a byte length; because szVolume is WCHAR its real byte size is VolumeLength*2, so a client can declare a VolumeLength up to ~2x the real space and still pass, making the UNICODE_STRING built from szVolume extend past the end of the context buffer. That over-read UNICODE_STRING is then used as the ObjectName for ZwCreateFile (via PrjfGetInstanceFromVolumeName -> FltGetVolumeFromName), reading out-of-bounds kernel pool. Diff of prjflt.sys 10.0.26100.8115 -> .8246 (Apr 14 2026, KB5083769) confirms the fix: gated behind CFR flag Feature_3411221816, PrjfPortConnect doubles VolumeLength (sVar5 = sVar5*2, WCHAR->bytes, with an overflow guard (ushort)(sVar5-1)<0x7fff) before the bounds check, so a name that would run past the context is rejected. Note: our diff shows Feature_3411221816 (build/arch); the *2 correction is as described.
| Function | Address | Change | Note |
|---|---|---|---|
PrjfPortConnect |
code change |
code (VolumeLength doubled for WCHAR in bounds check, CFR-gated) | Pre: if (SizeOfContext >= VolumeLength + 0x16) - WCHAR szVolume validated as bytes -> under-check by 2x, UNICODE_STRING reads past the context. Post (Feature_3411221816): sVar5=VolumeLength; if (feature && (ushort)(sVar5-1)<0x7fff) sVar5=sVar5*2; then require SizeOfContext >= sVar5+0x16. |
Feature_3411221816 |
gate |
added (CFR gate) | CFR flag gating the WCHAR-aware (x2) length check; original under-validating check still ships when disabled. |
Attack Path
A ProjFS connection context declares a WCHAR volume name validated as bytes, so the name UNICODE_STRING over-reads the context
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
ChenJian with Sea Security Orca Team