enki-kr/CVE-2026-32223-USBPrint-Exploit

GitHub: enki-kr/CVE-2026-32223-USBPrint-Exploit

针对 Windows USB 打印驱动 CVE-2026-32223 堆溢出漏洞的完整本地提权利用 PoC,展示从 USB 设备模拟到 SYSTEM 权限获取的完整利用链。

Stars: 6 | Forks: 1

# CVE-2026-32223:Plug me If you can :利用 Windows USB 打印机驱动漏洞 **Windows USB 打印驱动 (usbprint.sys) 中的基于堆的缓冲区溢出导致本地权限提升 (LPE)** 该漏洞由 [ENKI WhiteHat](https://enki.co.kr) 发现并报告。 ## 概述 CVE-2026-32223 是 Windows USB 打印驱动 (`usbprint.sys`) 中的一个基于堆的缓冲区溢出漏洞。该漏洞是由于在 `Make1284IdStringFromUsbStrings` 函数中处理 IOCTL `0x220064` 时,对 USB 字符串描述符验证不当所致。 当连接特制的 USB 打印机设备且用户态程序调用易受攻击的 IOCTL 时,该驱动程序会将 USB 设备的 MFG/MDL 字符串描述符中的数据复制到堆缓冲区,而没有正确验证源数据大小与目标缓冲区大小之间的关系,从而导致 NonPagedPoolNx 堆溢出。 完整的漏洞利用链通过以下方式实现 **SYSTEM 权限提升**: - 使用畸形描述符进行 USB 设备模拟(通过 Odroid C4 上的 Linux Raw Gadget) - 使用 Named Pipe 喷射进行 Pool Feng Shui 以控制堆布局 - 使用 Ghost Chunk 技术实现池重叠和内核地址泄露 - 通过伪造的 IRP 结构实现任意读/写原语 - 修改 `SeDebugPrivilege` LUID 以实现权限提升 ## 演示 ## 博客文章 完整的技术分析可在 [ENKI WhiteHat 博客](https://www.enki.co.kr/en/media-center/blog/plug-me-if-you-can-exploiting-usb-printer-drivers-in-windows) 上找到。 ## 免责声明 本仓库提供的内容**仅供安全研究和教育目的使用**。 - **严禁**将本仓库的内容用于任何未经授权或恶意的活动。 - 作者对因使用本代码而造成的任何误用或损害概不负责。
标签:CVE-2026-32223, ENKI WhiteHat, Ghost Chunk, IRP伪造, LPE, Named Pipe, NonPagedPoolNx, PoC, Pool Feng Shui, Raw Gadget, SeDebugPrivilege, UML, usbprint.sys, USB打印驱动, USB设备模拟, Web报告查看器, 二进制利用, 任意读写, 内核漏洞, 堆缓冲区溢出, 暴力破解, 本地提权, 概念验证, 池风水, 白帽黑客, 系统权限