Skip to main content
Mallory
HighCISA KEVExploited in the wildPublic exploit

Windows Common Log File System Driver Use-After-Free Local Privilege Escalation

IdentifiersCVE-2025-29824CWE-416· Use After Free

CVE-2025-29824 is a local elevation-of-privilege vulnerability in the Windows Common Log File System (CLFS) driver (clfs.sys). The flaw is a use-after-free condition caused by improper lifetime management of the FILE_OBJECT FsContext2 pointer, which references a CLFS log context object described in the analysis as an undocumented CClfsLogCcb structure. Pre-patch, CClfsRequest::Cleanup() could release this object while other I/O requests still still referenced it, creating a race where subsequent CLFS request handling dereferenced freed memory. The provided analysis identifies reachable dereference paths including CClfsRequest::ReadArchiveMetadata(), CClfsRequest::ReserveAndAppendLog(), and CClfsRequest::WriteRestart(), with ReadArchiveMetadata() described as the simplest trigger path via DeviceIoControl(). Microsoft’s fix reportedly moved the final release logic from the cleanup path to the close path so the object is not freed until outstanding I/O has completed, and also clears FileObject->FsContext and FsContext2 during close. Microsoft and multiple reports state the vulnerability was exploited in the wild as a zero-day and used by Storm-2460/Play-linked activity as the privilege-escalation step before ransomware deployment, often alongside the PipeMagic backdoor.

Share:
For your environment

Are you exposed to this one?

Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.

ANALYST BRIEF

Impact, mitigation & remediation

What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.

Impact

What an attacker gets, and what they’ve been doing with it.

Successful exploitation allows a local attacker to elevate privileges to SYSTEM on a vulnerable Windows host. In observed intrusions, this privilege escalation was used as a post-compromise step to transition from initial access to full host control and ransomware deployment. With SYSTEM privileges, an attacker can disable defenses, dump credentials, tamper with security tooling, persist more effectively, move laterally, and execute ransomware or other payloads with maximum local privileges.

Mitigation

If you can’t patch tonight, do this now.

If immediate patching is not possible, reduce local attack opportunities and contain post-compromise abuse: restrict local logon and code execution for untrusted users, closely monitor for anomalous CLFS activity such as unusual .blf file creation or suspicious CLFS DeviceIoControl usage, hunt for PipeMagic-related artifacts and other post-exploitation tooling, and use segmentation to limit ransomware propagation. Because exploitation is local and has been used in active ransomware chains, mitigation should focus on preventing initial footholds from reaching vulnerable Windows hosts and on rapid detection of privilege-escalation behavior.

Remediation

Patch, then assume compromise.

Apply Microsoft’s April 2025 security updates for affected Windows versions. The supplied advisory states affected platforms include Windows 10, Windows 11, and Windows Server 2008/R2, 2012/R2, 2016, 2019, 2022, and 2025. The patch changes CLFS object lifetime handling by moving the final release of the FsContext2-backed object from cleanup to close, preventing premature free while I/O is still outstanding. Organizations should prioritize patching exposed and high-value systems, especially multi-user endpoints and systems already suspected of compromise, and validate that updated clfs.sys versions are deployed.
PUBLIC EXPLOITS

Exploits

3 valid exploits after Mallory filtered fakes, detection scripts, and README-only repos.

VALID 3 / 3 TOTALView more in app
CVE-2025-29824MaturityPoCVerified exploit

This repository is a Windows local privilege escalation and crash PoC set for CVE-2025-29824, targeting the Windows CLFS subsystem. It contains 6 files total: a short README, three main C++ PoCs, and one small test client. The code is not part of a larger exploit framework. Repository structure and purpose: - README.md identifies the target builds: Windows 10 21H2 19044.5608 x64 and Windows 11 23H2 22631.5126 x64. It labels the included PoCs as crash (蓝屏poc) and LPE (win10_poc, win11_poc). - test_client/test_client.cpp is a minimal trigger harness. It opens a CLFS log object via \\.\LOG:\??\C:\ProgramData\Exploit.blf and sends IOCTL 0x80077028 to validate or exercise the vulnerable path. This is best understood as a trigger/test utility rather than the full exploit. - win10_poc/main.cpp is the main Windows 10 LPE exploit. From the visible code, it resolves the kernel base with EnumDeviceDrivers, loads ntoskrnl.exe locally to compute the runtime address of RtlSetAllBits, leaks the current process token kernel object address using NtQuerySystemInformation(SystemHandleInformation), derives a target privilege field offset, allocates fixed-address memory regions, prepares crafted spray payloads, creates 1500 pipes for pool spraying, opens up to 5000 CLFS handles, and races a close thread against a trigger thread using high-priority pinned threads. It checks whether token privileges changed and, on success, launches a SYSTEM shell. - win11_poc/win11_poc.cpp is a Windows 11 adaptation of the same exploit strategy. It includes similar token-address discovery, CLFS handle pool creation, pipe spraying, and race orchestration. Unlike the Windows 10 version, it explicitly contains embedded x64 shellcode that runs cmd.exe and references an InjectToWinlogon() post-exploitation step, indicating code injection into winlogon after successful privilege gain. - 蓝屏poc/poc.cpp is a crash-oriented PoC. It creates a large CLFS handle pool, then uses two threads: one closes handles to create a UAF window and the other repeatedly issues asynchronous DeviceIoControl calls with IOCTL 0x80076856. The comments describe reclaiming a freed 0x120-byte kernel pool chunk with pipe-based spraying. This variant appears intended to trigger instability/BSOD rather than complete privilege escalation. Main exploit capabilities: - Local kernel exploitation against CLFS through a race/use-after-free condition. - Mass handle creation against a CLFS log path to increase race reliability. - Pool spraying using named pipes to reclaim freed kernel allocations with attacker-controlled data. - Kernel information gathering: token object kernel address leakage and kernel base discovery. - Privilege manipulation by targeting token privilege-related fields. - Post-exploitation shell execution: cmd.exe launch and, on Windows 11, likely injection into winlogon.exe. Notable implementation details: - The exploit is highly build-specific and tuned for x64 Windows targets. - It uses thread affinity and THREAD_PRIORITY_TIME_CRITICAL to improve race timing. - It relies on CLFS device namespace access rather than network communication; there are no remote C2 or internet endpoints. - The included shellcode and post-exploitation routines make this more than a pure PoC, but it is still a standalone exploit rather than a reusable framework module.

uname1ableDisclosed Mar 17, 2026cppmarkdownlocalkernelrace condition
CVE-2025-29824-ExploitMaturityPoCVerified exploit

This repository contains a working exploit for CVE-2025-29824, a critical privilege escalation vulnerability in the Windows Common Log File System (CLFS) driver. The exploit is implemented in C++ (exploit.cpp) and is designed to run on Windows systems vulnerable to this flaw (Windows 7 through Server 2025, pre-April 2025 patch). The exploit works by leaking the kernel base address, allocating shellcode, performing a heap spray with CLFS log files, and triggering a use-after-free (UAF) condition via a race condition in CLFS. Upon successful exploitation, custom shellcode is executed in kernel context, and a SYSTEM-level command prompt (cmd.exe) is spawned, granting the attacker full administrative privileges. The README provides detailed context, including attack chain, threat actor attribution, and mitigation advice. No network endpoints are present; the attack vector is local privilege escalation. The repository includes Visual Studio project files for building the exploit, but the main logic resides in exploit.cpp.

AfanPanDisclosed Jul 30, 2025cppxmllocal
CVE-2025-29824MaturityPoCVerified exploit

This repository contains a proof-of-concept (PoC) local privilege escalation exploit for CVE-2025-29824, a use-after-free vulnerability in the Windows Common Log File System (CLFS) kernel driver. The exploit is implemented in C++ (exploit.cpp) and is designed to be built with Visual Studio 2022. The repository includes a Visual Studio solution and project file for ease of compilation. The exploit works by leaking the kernel base address to bypass ASLR, performing a heap spray with 1000 CLFS log files, and triggering a race condition via WaitForInputIdle to induce the UAF. Custom shellcode is then executed to traverse kernel EPROCESS structures and steal the SYSTEM token, granting SYSTEM privileges to the attacker. The exploit is intended for academic and educational use in a controlled, air-gapped VM environment running a vulnerable version of Windows 10 21H2. No network endpoints or remote attack vectors are present; the exploit is purely local. The only fingerprintable endpoint is the use of the 'log:test' file path for CLFS log creation during heap spraying. The README provides detailed build and usage instructions, as well as troubleshooting and resource links.

encrypter15Disclosed May 14, 2025cpplocal
EXPOSURE SURFACE

Affected products & vendors

Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.

VendorProductType
Microsoft CorporationWindows 10 1507operating_system
Microsoft CorporationWindows 10 1607operating_system
Microsoft CorporationWindows 10 1809operating_system
Microsoft CorporationWindows 10 21h2operating_system
Microsoft CorporationWindows 10 22h2operating_system
Microsoft CorporationWindows 11 22h2operating_system
Microsoft CorporationWindows 11 23h2operating_system
Microsoft CorporationWindows 11 24h2operating_system
Microsoft CorporationWindows Server 2008operating_system
Microsoft CorporationWindows Server 2008 R2operating_system
Microsoft CorporationWindows Server 2008 Sp2operating_system
Microsoft CorporationWindows Server 2012operating_system
Microsoft CorporationWindows Server 2012 R2operating_system
Microsoft CorporationWindows Server 2016operating_system
Microsoft CorporationWindows Server 2019operating_system
Microsoft CorporationWindows Server 2022operating_system
Microsoft CorporationWindows Server 2022 23h2operating_system
Microsoft CorporationWindows Server 2025operating_system
Microsoft CorporationWindows Server 23h2operating_system

Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.

What this page doesn’t show

The version that knows your environment.

This page is what’s public. Mallory adds the parts that aren’t: which of your assets are affected, which adversaries are exploiting it right now, which detections to deploy, and what to do tonight.
Exposure mapping

Query your assets running an affected version, and investigate the blast radius.

Threat actor evidence17

Every observed campaign linking this CVE to a named adversary.

Associated malware21

Malware families riding this exploit, with evidence and IOCs.

Detection signatures2

YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.

Vendor-by-vendor mapping

Cross-references every affected SKU, including bundled OEM variants.

Social activity86

Community discussion across Reddit, Mastodon, and other social sources.