CVE-2026-58637 — Windows Client-Side Caching Elevation of Privilege Vulnerability
Executive Summary
Use after free in Windows Client-Side Caching (CSC) Service 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 1607 for 32-bit Systems | 5099535 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 1607 for x64-based Systems | 5099535 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 1809 for 32-bit Systems | 5099538 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 1809 for x64-based Systems | 5099538 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 21H2 for 32-bit Systems | 5099539 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 21H2 for ARM64-based Systems | 5099539 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 21H2 for x64-based Systems | 5099539 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 22H2 for 32-bit Systems | 5099539 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 22H2 for ARM64-based Systems | 5099539 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 22H2 for x64-based Systems | 5099539 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 24H2 for ARM64-based Systems | 5101650 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 24H2 for x64-based Systems | 5101650 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 25H2 for ARM64-based Systems | 5101650 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 25H2 for x64-based Systems | 5101650 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 Version 26H1 for ARM64-based Systems | 5101649 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 11 version 26H1 for x64-based Systems | 5101649 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2012 | 5099445 (Monthly Rollup) |
Important | Elevation of Privilege | Yes |
| Windows Server 2012 (Server Core installation) | 5099445 (Monthly Rollup) |
Important | Elevation of Privilege | Yes |
| Windows Server 2012 R2 | 5099444 (Monthly Rollup) |
Important | Elevation of Privilege | Yes |
| Windows Server 2012 R2 (Server Core installation) | 5099444 (Monthly Rollup) |
Important | Elevation of Privilege | Yes |
| Windows Server 2016 | 5099535 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2016 (Server Core installation) | 5099535 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2019 | 5099538 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2019 (Server Core installation) | 5099538 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2022 | 5099540 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2025 | 5099536 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2025 (Server Core installation) | 5099536 (Security Update) |
Important | Elevation of Privilege | Yes |
Patches
| Article | Type | Restart |
|---|---|---|
5099535 |
Security Update | Yes |
5099538 |
Security Update | Yes |
5099539 |
Security Update | Yes |
5101650 |
Security Update | Yes |
5101649 |
Security Update | Yes |
5099445 |
Monthly Rollup | Yes |
5099444 |
Monthly Rollup | Yes |
5099540 |
Security Update | Yes |
5099536 |
Security Update | Yes |
Patch Diff
Use-after-free (CWE-416) via an unsynchronized Offline Files enumerator in the Windows Client-Side Caching (CSC) service cscsvc.dll, local EoP to SYSTEM (race). The CSC service exposes an offline-files data enumerator, CEnumOfflineFilesData_Flat, whose methods (Next, Clone, Skip, Reset) advance an internal cursor over the enumerator's backing item data. PRE: these methods had no serialization, so concurrent calls on the same enumerator object from a client could race - one operation freeing/advancing the cursor or backing item-filter data while another was still using it - a use-after-free. Because cscsvc runs as SYSTEM and the enumerator is reachable by a (domain) user through the Offline Files interface, and exploitation requires winning the race (AC:H), the UAF is a local EoP-to-SYSTEM primitive. Diff of cscsvc.dll 10.0.26100.8737 -> .8875 (Jul 14 2026, KB5101650) confirms the fix: gated behind CFR flag Feature_892568891, CEnumOfflineFilesData_Flat gains a CRITICAL_SECTION member (the object grows by ~0x30 bytes; existing members shift from +0x278 to +0x2a8) and Next/Clone/Skip/Reset now EnterCriticalSection/LeaveCriticalSection around the cursor iteration and clone, serializing concurrent enumerator operations so the backing data cannot be freed/advanced while in use; Clone additionally reads the path via CPath::_GetConstBuffer instead of CCscScope::Path.
| Function | Address | Change | Note |
|---|---|---|---|
CEnumOfflineFilesData_Flat::Next |
code change |
code (cursor iteration now under a critical section, CFR-gated) | Post (Feature_892568891): EnterCriticalSection(this+0x278) before _Next(...) and LeaveCriticalSection after, serializing concurrent enumeration so the cursor/backing data is not freed/advanced by a racing operation. |
CEnumOfflineFilesData_Flat::Clone |
code change |
code (clone under the critical section; safer buffer access) | Post: clone/CreateInstance guarded by the critical section; reads the path via CPath::_GetConstBuffer instead of CCscScope::Path (avoids a transient/dangling buffer). |
CEnumOfflineFilesData_Flat::CEnumOfflineFilesData_Flat / ~ / Skip / Reset / CreateInstance |
code change |
code (object grows to hold a CRITICAL_SECTION; init/teardown updated) | Constructor initializes and destructor deletes the new CRITICAL_SECTION; item-filter block and other members shift from +0x278 to +0x2a8; Skip/Reset participate in the serialized access. |
Feature_892568891 |
gate |
added (CFR gate) | CFR flag gating the critical-section serialization; the original unsynchronized enumerator still ships when disabled. |
Attack Path
Concurrent operations on an unsynchronized Offline Files enumerator free the cursor's backing data while another call uses it
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.
Exploits & PoC
Detection Rules
Acknowledgments
z1r0
Byunghyun Kang