CVE-2026-32074 — Windows Projected File System Elevation of Privilege Vulnerability
Executive Summary
Double free 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
Double free (CWE-415) in the Windows Projected File System minifilter prjflt.sys PrjfCreateUnionContext negative-path-cache hash table, local EoP. When PRJ_FLAG_USE_NEGATIVE_PATH_CACHE (Flags bit 0) is set, PrjfCreateUnionContext creates UnionContext->NegtiveHashTable via RtlCreateHashTableEx (initial size 0x2000). Inside RtlpCreateHashTable, for size>0x80 it ExAllocatePool2's a Directory then per-bucket SecondLevelDirs; if RtlpAllocateSecondLevelDir fails it jumps to RtlDeleteHashTable(HashTable), which frees HashTable->Directory (and second-level dirs) but does NOT NULL Directory. RtlCreateHashTableEx then returns false, so PrjfCreateUnionContext takes its error path and calls PrjfReleaseUnionContext, which (seeing Flags&1) calls RtlDeleteHashTable(&NegtiveHashTable) AGAIN, freeing the already-freed Directory a second time -> double free. Reachable unprivileged via ProjFS union-context creation; inducing the second-level-dir allocation to fail (pool pressure) triggers it. Diff of prjflt.sys 10.0.26100.8115 -> .8246 (Apr 14 2026, KB5083769) confirms the fix: gated behind CFR flag Feature_440600889, on the RtlCreateHashTableEx failure path PrjfCreateUnionContext clears the PRJ_FLAG_USE_NEGATIVE_PATH_CACHE bit (UnionContext->Flags &= 0xFFFFFFFE), so PrjfReleaseUnionContext's (Flags&1) guard is false and it does not delete the hash table a second time. Note: our diff shows Feature_440600889 (build/arch).
| Function | Address | Change | Note |
|---|---|---|---|
PrjfCreateUnionContext |
code change |
code (clear negative-path-cache flag on hash-table failure, CFR-gated) | Pre: on RtlCreateHashTableEx failure (Directory freed but not NULL'd inside RtlDeleteHashTable), the error path calls PrjfReleaseUnionContext which, seeing Flags&1, calls RtlDeleteHashTable again -> double free of Directory. Post (Feature_440600889): clears Flags&1 (UnionContext->Flags & 0xFFFFFFFE) on the failure path so PrjfReleaseUnionContext skips the second RtlDeleteHashTable. |
Feature_440600889 |
gate |
added (CFR gate) | CFR flag gating the flag-clear on the hash-table-creation-failure path; original double-free path still ships when disabled. |
Attack Path
A failed second-level-dir allocation frees the hash-table Directory, then union-context release frees it again
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