tihomirocrew/portwell-lpe

GitHub: tihomirocrew/portwell-lpe

针对 Portwell 驱动 CVE-2026-3437 任意物理内存读写漏洞的 PoC 利用代码,可用于本地提权至 SYSTEM。

Stars: 0 | Forks: 0

# cve-2026-3437 通过 `MmMapIoSpace` 在 `portwell.sys` (Portwell Engineering Toolkits v4.8.2) 中进行任意物理内存读写。通过与驱动程序的 IOCTL 接口交互,可实现 LPE/SYSTEM 提权以及 BYOVD。 ## 分析 该驱动程序为 `IRP_MJ_DEVICE_CONTROL` 注册了一个分发例程,以处理来自用户态的 `DeviceIoControl` 调用。 ![驱动程序入口](https://static.pigsec.cn/wp-content/uploads/repos/cas/c7/c723c0a65133b590c3d1ee343bc524a42c8425b51bddb6b1a7f5d8fbd1b6f247.png) 在分发例程内部,我们可以找到对 `sub_11F80` 的调用。 ![写物理内存调用](https://static.pigsec.cn/wp-content/uploads/repos/cas/79/79a947665491e5a9ec602339e4e8fae410fa10f3fbc5b5293e0d2199937fd8b7.png) 查看该函数内部,会发现以下情况: - 通过 `MmMapIoSpace` 并使用用户提供的物理地址和数据,实现任意物理内存写入 - 对用户提供的参数没有进行适当的验证 ![写物理内存](https://static.pigsec.cn/wp-content/uploads/repos/cas/d9/d96c13a67821676e3635fcc06e8f89c1d239329e7f5292ca9ebd4242fdd22183.png) 回到分发例程,我们还可以找到对 `sub_11E40` 的调用。 ![读物理内存调用](https://static.pigsec.cn/wp-content/uploads/repos/cas/f8/f8362020ea64bbe30d5dc17404153d9b281ce5516db531a43c24206d6f2fd581.png) 查看该函数内部,会发现以下情况: - 通过 `MmMapIoSpace` 实现任意物理内存读取 - 对用户提供的参数没有进行适当的验证 ![读物理内存](https://static.pigsec.cn/wp-content/uploads/repos/cas/e6/e6c4993e6fe4a4a25260a2f1b62a3ba33c4e5aa122b8e60d037b785f08410d6b.png) ## 用法 ``` sc create portwell binPath=C:\windows\temp\portwell.sys type=kernel sc start portwell .\cve-2026-3437.exe ``` ## 参考 - 🔍 [SentinelOne 分析](https://www.sentinelone.com/vulnerability-database/cve-2026-3437/) - 🛡️ [LOLDrivers](https://www.loldrivers.io/drivers/84f92ac1-1e72-420d-9cc0-65c838b90a4d/) - 📋 [NVD 记录](https://nvd.nist.gov/vuln/detail/CVE-2026-3437)
标签:BYOVD, UML, Web报告查看器, 内核驱动, 协议分析, 权限提升, 网络协议