Important CVSS 7 EPSS 0.00202 🔬 Patch diffed 2026-05 archive

Executive Summary

Use after free in Windows Cloud Files Mini Filter Driver allows an authorized attacker to elevate privileges locally.

Overview

7
CVSS HIGH
Important
MS Severity
Not Exploited
MS Exploit Status
Exploitation Unlikely
MS Exploit Likelihood
Category Elevation of Privilege
Released May 12 2026
Last Updated May 12 2026
Publicly Disclosed No
CISA KEV Not Listed
Known Exploits None Known
EPSS Score 0.00202 — 0.10314 percentile
NVD CVSS 7 HIGH — differs from MSRC

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
ATTACK VECTOR
Local
ATTACK COMPLEXITY
High
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.00202
probability of exploitation in the next 30 days
0.10314 percentile - updated 2026-08-14
View on FIRST.org

Affected Products

15 affected products
Product KB Article Severity Impact Restart Required
Windows 10 Version 1809 for 32-bit Systems 5087538 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 1809 for x64-based Systems 5087538 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 21H2 for 32-bit Systems 5087544 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 21H2 for ARM64-based Systems 5087544 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 21H2 for x64-based Systems 5087544 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 22H2 for 32-bit Systems 5094127 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 22H2 for ARM64-based Systems 5094127 (Security Update) Important Elevation of Privilege Yes
Windows 10 Version 22H2 for x64-based Systems 5094127 (Security Update) Important Elevation of Privilege Yes
Windows 11 Version 23H2 for ARM64-based Systems 5087420 (Security Update) Important Elevation of Privilege Yes
Windows 11 Version 23H2 for x64-based Systems 5093998 (Security Update) Important Elevation of Privilege Yes
Windows 11 Version 24H2 for ARM64-based Systems 5089549 (Security Update) 5089466 (Security Hotpatch Update) Important Elevation of Privilege 5082063 Base: 7.8 Temporal: 6.8 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 10.0.26100.8457 10.0.26100.8390 Yes None Windows 11 Version 24H2 for x64-based Systems 5089549 (Security Update) 5089466 (Security Hotpatch Update) Important Elevation of Privilege 5082063 Base: 7.8 Temporal: 6.8 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 10.0.26100.8457 10.0.26100.8390 Yes None Windows 11 Version 25H2 for ARM64-based Systems 5089549 (Security Update) 5089466 (Security Hotpatch Update) Important Elevation of Privilege 5083769 Base: 7.8 Temporal: 6.8 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 10.0.26200.8457 10.0.26200.8390 Yes None Windows 11 Version 25H2 for x64-based Systems 5089549 (Security Update) 5089466 (Security Hotpatch Update) Important Elevation of Privilege 5083769 Base: 7.8 Temporal: 6.8 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 10.0.26200.8457 10.0.26200.8390 Yes None Windows 11 Version 26H1 for ARM64-based Systems 5089548 (Security Update) Important Elevation of Privilege Yes
Windows 11 version 26H1 for x64-based Systems 5089548 (Security Update) Important Elevation of Privilege Yes
Windows Server 2019 5087538 (Security Update) Important Elevation of Privilege Yes
Windows Server 2019 (Server Core installation) 5087538 (Security Update) Important Elevation of Privilege Yes
Windows Server 2022 5087545 (Security Update) 5087424 (Security Hotpatch Update) Important Elevation of Privilege 5082142 Base: 7.8 Temporal: 6.8 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 10.0.20348.5139 10.0.20348.5074 Yes None Windows Server 2022 (Server Core installation) 5087545 (Security Update) 5087424 (Security Hotpatch Update) Important Elevation of Privilege 5082142 Base: 7.8 Temporal: 6.8 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 10.0.20348.5139 10.0.20348.5074 Yes None Windows Server 2022, 23H2 Edition (Server Core installation) 5087541 (Security Update) Important Elevation of Privilege Yes

Patches

7 patches
Article Type Restart
5087538 Security Update Yes
5087544 Security Update Yes
5094127 Security Update Yes
5087420 Security Update Yes
5093998 Security Update Yes
5089548 Security Update Yes
5087541 Security Update Yes

Patch Diff

ghidriff · cldflt.sys (KB5089549)

Use-after-free / TOCTOU race (CWE-416/CWE-367) in the Windows Cloud Files mini filter driver cldflt.sys, local EoP. The hydration completion callback HsmiRecallPostProcessHydration and the handle-cleanup path HsmFltPreCLEANUP (via HsmpRecallTerminateProgressiveHydration) share the active-hydration-context pointer slot at StreamHandleContext+0x38. Completion inserts an entry only when the slot is empty via InterlockedCompareExchange64(slot, Entry, 0). PRE: the cleanup path used a destructive InterlockedExchange64(slot, 0) that unconditionally zeroed the slot, then began releasing the file handle. Immediately after the slot is zeroed, a completion callback on another CPU can CAS-insert a fresh hydration entry (slot==0 so the CAS succeeds) while cleanup has already begun freeing the handle -> the hydration path operates on a freed/invalid resource (UAF). Triggered by hydrating a cloud placeholder while concurrently closing the same handle. IN-HOUSE ghidriff of cldflt.sys 10.0.26100.8328 -> .8457 (May 12 2026, KB5089549) confirms the fix: gated behind CFR flag Feature_955245880, the cleanup path replaces InterlockedExchange64(slot,0) with a CAS-loop bit-marking protocol - InterlockedCompareExchange64(slot, old|1, old) sets bit 0 of the pointer (kernel pool >=8-byte aligned so ptr|1 is a non-zero sentinel), so the completion CAS(slot,Entry,0) can no longer succeed; the CAS loop's bit-0 test handles concurrent cleanups (skip via LABEL_77). The old 0x800 synchronization flag is now set only on the feature-disabled path. Note: our x64 24H2 diff shows Feature_955245880, differing from the circulated screenshots' Feature_1223681336 (build/arch difference); the ptr|1 marking mechanism is identical. We ship what our diff shows.

Pre-patch version 10.0.26100.8328 Download
Post-patch version 10.0.26100.8457 Download
Function Address Change Note
HsmpRecallTerminateProgressiveHydration code change code (destructive exchange -> CAS bit-0 marking, CFR-gated) Cleanup/terminate path that operates the StreamHandleContext+0x38 slot. Pre: LOCK; old=slot; slot=0; UNLOCK (InterlockedExchange64(slot,0)). Post (Feature_955245880 enabled): CAS loop - if (old & 1) return (bit 0 already marked); if (slot==old) slot = old|1 (InterlockedCompareExchange64(slot, old|1, old)). 0x800 flag set only when feature disabled.
HsmFltPreCLEANUP code change code (cleanup path; drops 0x800 slot flag) Handle-cleanup path that drives the terminate-hydration marking; pre-patch set *(entry+0x30) |= 0x800 as the synchronization signal (removed/suppressed under the bit-0 protocol).
HsmiRecallPostProcessHydration code change code (completion CAS insert) Completion callback inserting the hydration entry via InterlockedCompareExchange64(slot, Entry, 0); after the fix marks the slot ptr|1 this CAS can no longer succeed, closing the race.
Feature_955245880 new flag added (CFR gate) New CFR flag gating the bit-0 marking protocol; the original destructive InterlockedExchange64(slot,0) path still ships in .8457.
View full diff report View RCA report

Attack Path

Cleanup zeroes the hydration slot, so a concurrent completion CAS re-inserts an entry against a handle being freed

Attack path for CVE-2026-35418 Cleanup zeroes the hydration slot, so a concurrent completion CAS re-inserts an entry against a handle being freed 01 — ENTRY Local user triggers hydration of a cloud placeholder and closes the same file handle concurrently cldflt.sys (kernel) hydrates OneDrive-style placeholders. The completion callback and the handle-cleanup path both touch the active-hydration slot at StreamHandleContext+0x38. 02 — CONTROLLED INPUT Cleanup (HsmFltPreCLEANUP -> terminate hydration) runs InterlockedExchange64(slot, 0) Pre-patch the cleanup path destructively zeroes the +0x38 slot and then begins releasing the file handle/resources. 03 — PATH On another CPU, HsmiRecallPostProcessHydration runs InterlockedCompareExchange64(slot, Entry, 0) Because the slot was just set to 0, the completion CAS succeeds and inserts a fresh hydration entry. 04 — MISSING CHECK The re-inserted entry references a handle cleanup is already freeing (CWE-416/CWE-367) Zeroing the slot makes it look 'empty and insertable' exactly while cleanup tears down the handle, so both paths operate on the same object across a free. 05 — PRIMITIVE Hydration path uses freed/invalid resource -> use-after-free -> EoP The dangling hydration entry drives kernel operations on freed memory. The May 2026 fix (Feature_955245880) marks the slot ptr|1 via CAS so the completion CAS(slot,Entry,0) can never succeed during cleanup.

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

Anonymous