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

Executive Summary

Use after 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.00258 — 0.17505 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.00258
probability of exploitation in the next 30 days
0.17505 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)

Reference-count underflow use-after-free (CWE-416) via cleanup asymmetry in the Windows Projected File System minifilter prjflt.sys PrjfScheduleExpansionWorkItem, local EoP. The function allocates a generic work item (FltAllocateGenericWorkItem), then ObfReferenceObject(FileObject) +1, then FltQueueGenericWorkItem. Two failure paths shared one cleanup block (LABEL_10/LABEL_14) that unconditionally ObfDereferenceObject(FileObject)'d: on queue-insert failure the ref was already taken (symmetric), but on ALLOCATION failure the goto reaches the same cleanup before ObfReferenceObject ran -> a dereference of a FILE_OBJECT never referenced here, so its refcount ends 1 lower than actual. Forcing FltAllocateGenericWorkItem to fail (pool pressure) drives the count to 0 while other paths hold the object -> free -> kernel UAF (reporter PoC reaches it via NtCreateFile on a ProjFS root: PrjfPostCreate -> PrjfProcessOpenWithinVirtualizationRoots -> PrjfExpandAndWait -> PrjfLaunchExpansion -> PrjfScheduleExpansionWorkItem). Diff of prjflt.sys 10.0.26100.8115 -> .8246 (Apr 14 2026, KB5083769) confirms the fix: gated behind CFR flag Feature_2428439865, a bool flag (init false) is set true only after ObfReferenceObject, and the shared-cleanup ObfDereferenceObject is guarded by `!feature || flag`. This is the ProjFS twin of the wcifs.sys cleanup-asymmetry bug CVE-2026-33098. Note: our diff shows Feature_2428439865 (build/arch).

Pre-patch version 10.0.26100.8115 Download
Post-patch version 10.0.26100.8246 Download
Function Address Change Note
PrjfScheduleExpansionWorkItem code change code (ref-tracking flag guards shared-cleanup deref, CFR-gated) Pre: alloc-fail -> goto shared cleanup (LABEL_10/14) -> unconditional ObfDereferenceObject(FileObject) with no matching ObfReferenceObject -> refcount underflow -> UAF. Post (Feature_2428439865): bVar13=false, set true right after ObfReferenceObject; cleanup does ObfDereferenceObject only if `!feature || bVar13`.
Feature_2428439865 gate added (CFR gate) CFR flag gating the guarded dereference; original unconditional deref still ships when disabled.
View full diff report View RCA report

Attack Path

An allocation-failure path dereferences a FILE_OBJECT it never referenced, underflowing the refcount to a free-while-in-use

Attack path for CVE-2026-32078 An allocation-failure path dereferences a FILE_OBJECT it never referenced, underflowing the refcount to a free-while-in-use 01 — ENTRY Local user opens a file under a ProjFS virtualization root prjflt.sys PrjfPostCreate -> ... -> PrjfScheduleExpansionWorkItem queues a placeholder-expansion work item, referencing the FILE_OBJECT. AV:L/PR:L/AC:L. 02 — CONTROLLED INPUT Induce FltAllocateGenericWorkItem failures under pool pressure On allocation failure the code goto's the shared cleanup before ObfReferenceObject runs. 03 — PATH The shared cleanup unconditionally ObfDereferenceObject(FileObject) On the alloc-failure path no reference was taken, but LABEL_10/LABEL_14 still decrements - an over-release. 04 — MISSING CHECK Cleanup asymmetry: deref without a matching ref -> refcount underflow (CWE-416) Each allocation failure leaves the FILE_OBJECT refcount one lower than actual; repeated failures drive it toward 0. 05 — PRIMITIVE Refcount reaches 0 with live references -> FILE_OBJECT freed -> kernel UAF -> EoP Other paths still use the prematurely freed object. The Apr 2026 fix (Feature_2428439865) tracks whether the ref was taken and dereferences only then.

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