
Código de exploit de prueba de concepto dirigido a CVE-2026-40369, que demuestra la vulnerabilidad para investigación y pruebas de seguridad autorizadas.
🛡️ Módulo de herramienta de seguridad de IA
CVE-2026-40369: Incremento de dirección del kernel en NtQuerySystemInformation Class 253 LPE
Módulo oficial de auditoría de seguridad y explotación para el ecosistema de herramientas de seguridad de IA
🌐 Demostración web • 📚 Sitio web del proyecto • 💬 Chat de la comunidad
Navegación del sitio web: Inicio • Actualizaciones • Descargas • Módulos
Este módulo proporciona herramientas de diagnóstico y análisis técnico profundo para CVE-2026-40369, una vulnerabilidad de incremento arbitrario de dirección del kernel (primitiva de escritura) en ntoskrnl.exe de Windows a través de NtQuerySystemInformation (Class 253 / SystemProcessInformationExtension).
Dado que se puede acceder a NtQuerySystemInformation desde contextos restringidos (incluido el sandbox del navegador Chrome), esta vulnerabilidad proporciona a un usuario local sin privilegios una primitiva de escalada de privilegios determinista y 100 % fiable.
| Especificación | Valor asignado | Notas |
|---|---|---|
| Identificador CVE | CVE-2026-40369 |
Incremento arbitrario de dirección del kernel mediante NtQuerySystemInformation |
| Componente | Windows Kernel (ntoskrnl.exe) |
ExpGetProcessInformation |
| Vector de activación | NtQuerySystemInformation(SystemProcessInformationExtension, kernelAddr, 0, &needed) |
Length=0 omite ProbeForWrite |
| Versiones de Windows | Windows 11 24H2–25H2 | Alcanzable desde el sandbox de Chrome |
| Impacto y vector | Incremento arbitrario de dirección del kernel (Write Primitive) | Bloque de construcción determinista para escalada de privilegios |
| Autenticación requerida | Ninguna (usuario local sin privilegios / en sandbox) | No se necesitan tokens ni privilegios especiales |
ExpGetProcessInformation es invocada por ExpQuerySystemInformation para las clases de información 5, 0x39, 0x94, 0xFC y 0xFD (253 = SystemProcessInformationExtension). Al manejar la clase 253, la variable v95 se inicializa directamente desde el puntero del búfer sin sanitización ni comprobaciones de NULL.
__int64 ExpGetProcessInformation(unsigned int *buffer, unsigned int length, ..., int infoClass)
{
v91 = buffer; // = NULL (when probing length=0)
if (infoClass == 253) {
v95 = v91; // BUG: sanitization for kernel address check missing!
goto LABEL_11;
}
// ...
LABEL_11:
while (NextProcess) {
if (infoClass == 253) {
++*v95; // CRASH / WRITE: Increments DWORD at target address
v95[1] += ...; // Adds thread count
v95[2] += ...; // Adds handle count
}
}
}
ExpQuerySystemInformation invoca ProbeForWrite(buffer, Length, alignment) antes del despacho. Sin embargo, ProbeForWrite con Length=0 es una NO-OP completa, ya que está condicionada por una comprobación interna if (Length). Pasar una dirección arbitraria del kernel con Length=0 permite que punteros no validados pasen directamente al bucle de iteración de procesos.
Para cada proceso del sistema, el kernel realiza incrementos aritméticos triples sobre la dirección de memoria objetivo:
[target+0] += 1 por proceso (recuento total de procesos del sistema)[target+4] += recuento acumulado de hilos activos[target+8] += recuento acumulado de handles activos
Supervise las llamadas anómalas a NtQuerySystemInformation que hagan referencia a la clase 253 con búferes de salida de longitud cero o rangos de direcciones inusuales. Aplique las últimas actualizaciones del proveedor y los controles de telemetría de endpoint.