CVE-2026-27927 — Windows Projected File System Elevation of Privilege Vulnerability
Executive Summary
Concurrent execution using shared resource with improper synchronization ('race condition') in Windows Projected 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 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
Race-condition use-after-free (CWE-362 + CWE-416) in the Windows Projected File System minifilter prjflt.sys PrjfCopyStreamData, local EoP. Running on the ProjFS expansion worker (PrjfExpansionWorker -> PrjfExpandFile -> PrjfCopyStreamData), it tracks the in-flight file in a per-union-context AVL handle table (UnionContext->AvlHandleTable) keyed by FileId (from StreamContext->Uuid), with entries _PRJ_HANDLE_AVL_TABLE_ENTRY{FileId, FileObject (from FltObjects->FileObject), FileHandle}. It RtlInsertElementGenericTableAvl's the entry, ObfReferenceObject's the FileObject if new, then calls PrjfSendGetFileStreamCommand (a user-mode round-trip that WAITS), and only afterwards RtlDeleteElementGenericTableAvl + ObDereferenceObjectDeferDelete. During the user-mode wait, another thread can operate on the same FileId/AVL entry without adequate synchronization, so the shared entry / referenced FILE_OBJECT can be freed or have its ref state changed concurrently -> this path then uses/dereferences a freed entry/object -> UAF. Runs in the SYSTEM expansion worker. IN-HOUSE ghidriff of prjflt.sys 10.0.26100.4202 -> .8246 confirms PrjfCopyStreamData is among the code-changed functions in the April fix (KB5083769); the precise synchronization instruction is heavily inlined and not cleanly isolable in the decompiled wide-span diff, so the mechanism follows the reporter PoC (serialize the AVL entry/FileObject lifetime across the user-mode command). Like the other April ProjFS fixes it is CFR-gated.
| Function | Address | Change | Note |
|---|---|---|---|
PrjfCopyStreamData |
code change |
code (AVL handle-table entry lifetime synchronized across user-mode command) | Pre: RtlInsertElementGenericTableAvl(entry) -> ObfReferenceObject(FileObject if new) -> PrjfSendGetFileStreamCommand (user-mode wait) -> RtlDeleteElementGenericTableAvl -> ObDereferenceObjectDeferDelete; the AVL entry/FileObject lifetime is not synchronized across the wait, so a concurrent op on the same FileId frees/alters it -> UAF. Post (.8246): PrjfCopyStreamData reworked to synchronize the entry/object lifetime across the user-mode round-trip (confirmed changed in our diff; exact inlined instruction not isolable). |
Attack Path
A ProjFS stream-data expansion holds an AVL handle entry across a user-mode wait, letting a concurrent op free it mid-use
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