CVE-2026-32070 — Windows Common Log File System Driver Elevation of Privilege Vulnerability
Executive Summary
Use after free in Windows Common Log File System Driver 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 | 5082198 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows 10 Version 1607 for x64-based Systems | 5082198 (Security Update) |
Important | Elevation of Privilege | Yes |
| 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 2012 | 5082127 (Monthly Rollup) |
Important | Elevation of Privilege | Yes |
| Windows Server 2012 (Server Core installation) | 5082127 (Monthly Rollup) |
Important | Elevation of Privilege | Yes |
| Windows Server 2012 R2 | 5082126 (Monthly Rollup) |
Important | Elevation of Privilege | Yes |
| Windows Server 2012 R2 (Server Core installation) | 5082126 (Monthly Rollup) |
Important | Elevation of Privilege | Yes |
| Windows Server 2016 | 5082198 (Security Update) |
Important | Elevation of Privilege | Yes |
| Windows Server 2016 (Server Core installation) | 5082198 (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 |
|---|---|---|
5082198 |
Security Update | Yes |
5082123 |
Security Update | Yes |
5082200 |
Security Update | Yes |
5082052 |
Security Update | Yes |
5083769 |
Security Update | Yes |
5083768 |
Security Update | Yes |
5082127 |
Monthly Rollup | Yes |
5082126 |
Monthly Rollup | Yes |
5082142 |
Security Update | Yes |
5082060 |
Security Update | Yes |
5082063 |
Security Update | Yes |
Patch Diff
Reference-count lifetime-inversion use-after-free (CWE-416) in the Windows CLFS driver clfs.sys CClfsManagedLog::AddNewClient. The function creates a COM-style reference-counted CClfsManagedLogClient, and pre-patch did: allocate + store in *a5, call Initialize (vtable+32) which registers the object EXTERNALLY (kernel structures / observer chains, e.g. InstallLogObserver), then finally AddRef (vtable+0). Because the object is published before any reference is held, its refcount is still 0 when other threads can find it; a concurrent Release drops the count below zero and frees the object, and the original thread's later AddRef touches freed memory -> UAF. The failure path also called the destructor directly (vtable+80, bFinal=1) rather than Release, which only balances the pre-patch ordering. Diff of clfs.sys 10.0.26100.8115 -> .8246 (Apr 14 2026, KB5083769) confirms AddNewClient is the changed function and gains a new CFR gate: gated behind Feature_1664551224, AddRef is moved BEFORE Initialize, and the failure path now calls Release (vtable+8) to balance the earlier AddRef; the list-insertion check became an explicit guard (if (*v18 != i) __fastfail(3u)) and control flow consolidated to a single LABEL_31 exit so the managed-log mutex is released once. All managed-log clients (CreateLogFile) reach this path. Note: our diff shows Feature_1664551224, differing from the circulated screenshots' Feature_1932986680 (build/arch difference); the AddRef-before-Initialize reorder is identical.
| Function | Address | Change | Note |
|---|---|---|---|
CClfsManagedLog::AddNewClient |
code change |
code (AddRef reordered before Initialize; Release on failure; CFR-gated) | Pre: alloc -> Initialize(vtable+32, registers externally) -> AddRef(vtable+0); refcount 0 during external exposure -> concurrent Release frees object -> later AddRef is UAF; failure path called destructor directly (vtable+80,bFinal=1). Post (Feature_1664551224 enabled): AddRef(vtable+0) first, then Initialize; on failure Release(vtable+8) to balance; list-insert guard `if (*v18 != i) __fastfail(3u)`; single LABEL_31 exit (mutex released once). |
Feature_1664551224 |
gate |
added (CFR gate) | CFR flag gating the AddRef-first ordering + Release-on-failure fix; the original ordering still ships when disabled. |
Attack Path
AddNewClient registers a CLFS managed-log client externally before taking a reference, so a racing Release frees it under the creating thread
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.