Skip to main content
Meet us at Black Hat USA 2026— Las Vegas, August 1–6Book a Meeting
Mallory
HighCISA KEVExploited in the wildPublic exploit

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

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

CVE-2025-29824 is a use-after-free vulnerability in the Windows Common Log File System (CLFS) driver (clfs.sys) that allows local elevation of privilege. Available technical analysis indicates the flaw is caused by incorrect lifetime management of the FILE_OBJECT FsContext2 pointer, which references an undocumented CClfsLogCcb structure. In the vulnerable implementation, CClfsRequest::Cleanup() could release the FsContext2-backed object while other I/O requests were still using it, creating a race condition and a use-after-free condition. Reachable CLFS request paths reported to dereference FsContext2 include CClfsRequest::ReadArchiveMetadata(), CClfsRequest::ReserveAndAppendLog(), and CClfsRequest::WriteRestart(), with ReadArchiveMetadata() described as the simplest trigger path via DeviceIoControl using control code 0x80076856. Public analysis describes exploitation as racing CloseHandle() against a concurrent DeviceIoControl() on the same CLFS log handle. Microsoft patched the issue in April 2025 by moving the final release logic from the cleanup path to the close path so the object is freed only after outstanding I/O completes, and by clearing FileObject->FsContext and FileObject->FsContext2 in CClfsRequest::Close(). Microsoft reported the vulnerability as actively exploited in the wild, and reporting linked exploitation to PipeMagic-enabled ransomware intrusion chains.

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 an authorized local attacker to elevate privileges to SYSTEM in the Windows kernel context. In observed attack chains, this privilege escalation was used post-compromise to disable security controls, dump LSASS memory, steal credentials, move laterally, and deploy ransomware. Technical writeups and incident reporting associate the flaw with PipeMagic and Storm-2460/PLAY-linked activity, making it a high-value post-exploitation primitive rather than an initial access vector.

Mitigation

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

If immediate patching is not possible, reduce exposure by limiting local attacker footholds, restricting interactive access for low-privileged users, segmenting networks to constrain post-exploitation movement, and closely monitoring for CLFS exploitation indicators and PipeMagic-related activity. Monitor for unusual BLF/CLFS log activity, suspicious use of ProcDump or renamed dump utilities such as dllhost.exe targeting LSASS, anomalous DeviceIoControl activity against CLFS handles, and other signs of post-compromise privilege escalation. These measures do not remove the vulnerability and are only temporary risk-reduction steps until patches are applied.

Remediation

Patch, then assume compromise.

Apply Microsoft's April 2025 security updates for affected Windows versions. Reported affected platforms include Windows 10, Windows 11, and Windows Server 2008 through 2025. Microsoft’s fix changes CLFS object lifetime handling so FsContext2 is no longer released during cleanup while outstanding I/O may still reference it. Organizations should prioritize patching endpoints and servers exposed to untrusted users or already suspected of compromise, given confirmed in-the-wild exploitation.
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 evidence19

Every observed campaign linking this CVE to a named adversary.

Associated malware26

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.