Windows pstrip64.sys BYOVD Physical Memory Local Privilege Escalation — CVE-2026-29923
by athenasec16 · 2026-07-05
- Severity
- Critical
- CVE
- CVE-2026-29923
- Category
- binary
- Affected product
- pstrip64.sys kernel driver (EnTech Taiwan PowerStrip, up to version 3.90.736)
- Affected versions
- pstrip64.sys as shipped with PowerStrip <= 3.90.736
- Disclosed
- 2026-07-05
- Patch status
- unpatched
Archive entry
intelseclab/poc-archiveMetadata
| Field | Value |
|---|---|
| Date Added | 2026-07-05 |
| Last Updated | 2026-04 |
| Author / Researcher | athenasec16 |
| CVE / Advisory | CVE-2026-29923 |
| Category | binary |
| Severity | Critical |
| CVSS Score | Not specified in source |
| Status | Weaponized |
| Tags | byovd, windows-kernel, lpe, physical-memory, eprocess, token-theft, driver, ioctl |
| Related | N/A |
Affected Target
| Field | Value |
|---|---|
| Software / System | pstrip64.sys kernel driver (EnTech Taiwan PowerStrip, up to version 3.90.736) |
| Versions Affected | pstrip64.sys as shipped with PowerStrip <= 3.90.736 |
| Language / Platform | C++, Windows 10 22H2 x86 (32-bit user-mode PoC against the driver) |
| Authentication Required | Local-only (standard/unprivileged local user) |
| Network Access Required | No |
Summary
pstrip64.sys is a legacy signed kernel driver bundled with EnTech Taiwan PowerStrip that exposes an IOCTL (0x80002008) allowing a calling process to map arbitrary physical memory into its own address space via ZwMapViewOfSection against \Device\PhysicalMemory, hardcoding the target as the current process. This is a classic “Bring Your Own Vulnerable Driver” (BYOVD) primitive: any unprivileged process that can load the driver gains an arbitrary physical memory read/write primitive. The PoC scans physical memory for EPROCESS structures using the Proc pool tag, validates candidates heuristically, locates the token of the System process (PID 4) and the exploit’s own process, and overwrites its own token pointer with the System token, escalating to NT AUTHORITY\SYSTEM.
Vulnerability Details
Root Cause
pstrip64.sys’s IOCTL 0x80002008 handler (sub_11000) maps attacker-specified physical addresses into the calling process’s virtual address space via ZwMapViewOfSection with a hardcoded ZwCurrentProcess() handle and returns the mapped virtual address to user-mode, granting arbitrary physical memory read/write with no privilege or caller checks.
Attack Vector
- Load the legacy signed
pstrip64.sysdriver (BYOVD) and open a handle viaCreateFileA(\\.\PSTRIP64). - Use IOCTL
0x80002008(wrapped asMapPhysicalMemory()) to map chunks of physical RAM (0x10000000–0x140000000, 2MB steps) into the exploit process. - Scan mapped memory for the
Procpool tag (0x636F7250) and validate candidateEPROCESSstructures via heuristics (PriorityClass, ProcessLock, printable ImageFileName). - Identify the exploit’s own process (by PID) and the
Systemprocess (PID 4); save the physical address of the exploit process’s token pointer and the value of the System token. - Map the page containing the exploit process’s token pointer and overwrite it with the System token value.
- Spawn
cmd.exeviaCreateProcessA, which inherits SYSTEM privileges.
Impact
Full local privilege escalation from a standard user to NT AUTHORITY\SYSTEM, bypassing modern Windows security protections via a trusted-but-vulnerable third-party driver.
Environment / Lab Setup
Target: Windows 10 22H2 x86, pstrip64.sys loaded (hash ab01485bb7c8bc1a9c86096eeea6d31d8fad557bf4d44072b46373d2203faa6e)
Attacker: Visual Studio / MSVC (build as 32-bit), local unprivileged user account
Proof of Concept
PoC Script
See
pstrip64_poc.cpp,pstrip64_poc.h, andpstrip64.sysin this folder.
| |
The PoC loads the vulnerable driver, establishes the physical memory read/write primitive via IOCTL 0x80002008, locates the SYSTEM and exploit-process EPROCESS token pointers by scanning physical memory, overwrites the exploit process token with the SYSTEM token, and spawns an elevated cmd.exe.
Detection & Indicators of Compromise
Signs of compromise:
- Presence/loading of
pstrip64.sysoutside expected PowerStrip installations - A low-integrity process suddenly spawning a SYSTEM-level
cmd.exe - EDR/driver-blocklist alerts for known vulnerable driver hashes (BYOVD detection)
Remediation
| Action | Detail |
|---|---|
| Primary fix | No vendor patch confirmed as of 2026-07-05 — monitor for advisory; block the driver via Microsoft’s vulnerable driver blocklist (HVCI/WDAC) |
| Interim mitigation | Remove/uninstall PowerStrip and pstrip64.sys where not required; enforce driver allow-listing and blocklist known-vulnerable driver hashes |
References
Notes
Mirrored from https://github.com/athenasec16/CVE-2026-29923 on 2026-07-05.
| |