
Codice exploit proof-of-concept mirato a CVE-2026-40369, che dimostra la vulnerabilità per ricerca e test di sicurezza autorizzati.
🛡️ Modulo Strumento di Sicurezza AI
CVE-2026-40369: Incremento di Indirizzo Kernel LPE tramite NtQuerySystemInformation Classe 253
Modulo Ufficiale di Audit di Sicurezza e Sfruttamento per l'Ecosistema dello Strumento di Sicurezza AI
🌐 Demo Web • 📚 Sito Web del Progetto • 💬 Chat della Community
Navigazione del Sito Web: Home • Aggiornamenti • Download • Moduli
Questo modulo fornisce strumenti diagnostici e un'analisi tecnica approfondita per CVE-2026-40369, una vulnerabilità di incremento arbitrario di indirizzo kernel (primitiva di scrittura) in Windows ntoskrnl.exe tramite NtQuerySystemInformation (Classe 253 / SystemProcessInformationExtension).
Poiché NtQuerySystemInformation è raggiungibile da contesti limitati (inclusa la sandbox del browser Chrome), questa vulnerabilità fornisce a un utente locale non privilegiato una primitiva di escalation dei privilegi deterministica e affidabile al 100%.
| Specifica | Valore assegnato | Note |
|---|---|---|
| Identificatore CVE | CVE-2026-40369 |
Incremento arbitrario di indirizzo del kernel tramite NtQuerySystemInformation |
| Componente | Windows Kernel (ntoskrnl.exe) |
ExpGetProcessInformation |
| Vettore di attivazione | NtQuerySystemInformation(SystemProcessInformationExtension, kernelAddr, 0, &needed) |
Length=0 aggira ProbeForWrite |
| Versioni di Windows | Windows 11 24H2–25H2 | Raggiungibile dalla sandbox di Chrome |
| Impatto e vettore | Incremento arbitrario di indirizzo del kernel (Write Primitive) | Elemento costitutivo deterministico per l'escalation dei privilegi |
| Autenticazione richiesta | Nessuna (utente locale non privilegiato / in sandbox) | Nessun token o privilegio speciale necessario |
ExpGetProcessInformation viene chiamata da ExpQuerySystemInformation per le classi di informazioni 5, 0x39, 0x94, 0xFC e 0xFD (253 = SystemProcessInformationExtension). Durante la gestione della classe 253, la variabile v95 viene inizializzata direttamente dal puntatore al buffer senza sanitizzazione né controlli su 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) prima del dispatch. Tuttavia, ProbeForWrite con Length=0 è un completo NO-OP, poiché è vincolato da un controllo interno if (Length). Passando un indirizzo arbitrario del kernel con Length=0 si riesce a far passare puntatori non validati direttamente nel ciclo di iterazione dei processi.
Per ogni processo presente nel sistema, il kernel esegue tre incrementi aritmetici sull'indirizzo di memoria di destinazione:
[target+0] += 1 per processo (conteggio totale dei processi di sistema)[target+4] += conteggio cumulativo dei thread attivi[target+8] += conteggio cumulativo degli handle attivi
Monitorare le chiamate anomale a NtQuerySystemInformation che fanno riferimento alla Classe 253 con buffer di output di lunghezza zero o intervalli di indirizzi insoliti. Applicare gli ultimi aggiornamenti del fornitore e i controlli di telemetria degli endpoint.