Important CVSS 7.8 EPSS 0.00257 🔬 Patch diffed 2026-04 archive

Executive Summary

Double free in Windows Projected File System allows an authorized attacker to elevate privileges locally.

Overview

7.8
CVSS HIGH
Important
MS Severity
Not Exploited
MS Exploit Status
Less Likely
MS Exploit Likelihood
Category Elevation of Privilege
Released Apr 14 2026
Last Updated Apr 14 2026
Publicly Disclosed No
CISA KEV Not Listed
Known Exploits None Known
EPSS Score 0.00257 — 0.17403 percentile
NVD CVSS 7.8 HIGH — matches MSRC

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
ATTACK VECTOR
Local
ATTACK COMPLEXITY
Low
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.8

EPSS Score

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

Affected Products

23 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

8 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

ghidriff · prjflt.sys (KB5083769)

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).

Pre-patch version 10.0.26100.8115 Download
Post-patch version 10.0.26100.8246 Download
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.
View full diff report View RCA report

Attack Path

A failed second-level-dir allocation frees the hash-table Directory, then union-context release frees it again

Attack path for CVE-2026-32074 A failed second-level-dir allocation frees the hash-table Directory, then union-context release frees it again 01 — ENTRY Local user reaches ProjFS PrjfCreateUnionContext with PRJ_FLAG_USE_NEGATIVE_PATH_CACHE prjflt.sys creates UnionContext->NegtiveHashTable via RtlCreateHashTableEx (size 0x2000). AV:L/PR:L/AC:L. 02 — CONTROLLED INPUT Induce RtlpAllocateSecondLevelDir to fail (pool pressure) after Directory is allocated RtlpCreateHashTable ExAllocatePool2's Directory, then fails a SecondLevelDir and jumps to RtlDeleteHashTable. 03 — MISSING CHECK RtlDeleteHashTable frees Directory but leaves the dangling pointer (not NULL'd) The hash-table struct still points at the freed Directory; RtlCreateHashTableEx returns false. 04 — PATH PrjfCreateUnionContext error path calls PrjfReleaseUnionContext Because Flags&1 is still set, PrjfReleaseUnionContext calls RtlDeleteHashTable(&NegtiveHashTable) again. 05 — PRIMITIVE Directory freed a second time -> double free (CWE-415) -> pool corruption -> EoP The same kernel pool allocation is freed twice. The Apr 2026 fix (Feature_440600889) clears Flags&1 on the failure path so the second delete is skipped.

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