Windows USB Driver Elevation of Privilege Vulnerability Patched by Microsoft

One of our security researchers at Delphos Labs, Kamil Leoniak, triggered kernel memory corruption on Windows using a custom USB device and a user-mode stress PoC. Microsoft assigned CVE-2026-50321, classified it as a Windows USB Driver elevation of privilege rated Important, and shipped the fix on July 14. The path was surfaced during an automated Delphos review of Windows kernel drivers, then confirmed by hand. The bug is that the freed object reference stayed reachable long enough for another path to use it. WinUSB_FreePipe frees a pipe context and only nulls the shared pointer afterward. In that window the interface pipe array still contains a pointer to freed memory, and device-control IOCTLs dispatch on a WDF parallel queue under WdfSynchronizationScopeNone, so nothing serializes access to that array. 16 threads were enough. 12 calling pipe policy APIs, 4 toggling alternate settings. A policy call read the stale pointer and took a spinlock at offset 0x28 inside a freed 0xF0-byte NonPagedPool object. Without Special Pool that allocation stays mapped and reclaimable. With it, the page is unmapped and the machine bugchecks. Full writeup on the Delphos Labs blog, with the PoC on GitHub. https://lnkd.in/espxg87M

Kamil L. is the GOAT - production decompilers couldn't serve the amazing work he's doing - so he had to invent his own. Go Delphos!

That race window between freeing and nulling is a classic challenge. It really highlights the risks of using WdfSynchronizationScopeNone.

Like
Reply
See more comments

To view or add a comment, sign in

Explore content categories