
Code d'exploit proof-of-concept ciblant CVE-2026-40369, démontrant la vulnérabilité à des fins de recherche et de tests de sécurité autorisés.
🛡️ Module d'outil de sécurité IA
CVE-2026-40369 : Incrément d'adresse noyau via NtQuerySystemInformation Class 253 (LPE)
Module officiel d'audit de sécurité et d'exploitation pour l'écosystème d'outils de sécurité IA
🌐 Démo web • 📚 Site web du projet • 💬 Chat communautaire
Navigation du site : Accueil • Mises à jour • Téléchargements • Modules
Ce module fournit des outils de diagnostic et une analyse technique approfondie pour CVE-2026-40369, une vulnérabilité d'incrément arbitraire d'adresse noyau (primitive d'écriture) dans ntoskrnl.exe de Windows via NtQuerySystemInformation (Class 253 / SystemProcessInformationExtension).
Étant donné que NtQuerySystemInformation est accessible depuis des contextes restreints (y compris le bac à sable du navigateur Chrome), cette vulnérabilité offre à un utilisateur local non privilégié une primitive d'élévation de privilèges déterministe et fiable à 100 %.
| Spécification | Valeur attribuée | Notes |
|---|---|---|
| Identifiant CVE | CVE-2026-40369 |
Incrément arbitraire d'adresse noyau via NtQuerySystemInformation |
| Composant | Noyau Windows (ntoskrnl.exe) |
ExpGetProcessInformation |
| Vecteur de déclenchement | NtQuerySystemInformation(SystemProcessInformationExtension, kernelAddr, 0, &needed) |
Length=0 contourne ProbeForWrite |
| Versions de Windows | Windows 11 24H2–25H2 | Accessible depuis le bac à sable de Chrome |
| Impact et vecteur | Incrément arbitraire d'adresse noyau (primitive d'écriture) | Brique déterministe d'élévation de privilèges |
| Authentification requise | Aucune (utilisateur local non privilégié / en bac à sable) | Aucun jeton ni privilège particulier nécessaire |
ExpGetProcessInformation est appelée par ExpQuerySystemInformation pour les classes d'information 5, 0x39, 0x94, 0xFC et 0xFD (253 = SystemProcessInformationExtension). Lors du traitement de la classe 253, la variable v95 est initialisée directement à partir du pointeur de tampon sans assainissement ni vérification 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 invoque ProbeForWrite(buffer, Length, alignment) avant la répartition. Cependant, ProbeForWrite avec Length=0 est une absence totale d'opération, car elle est conditionnée par une vérification interne if (Length). Le passage d'une adresse noyau arbitraire avec Length=0 permet à des pointeurs non validés de franchir directement la boucle d'itération des processus.
Pour chaque processus du système, le noyau effectue des incréments arithmétiques triples sur l'adresse mémoire cible :
[target+0] += 1 par processus (nombre total de processus système)[target+4] += nombre cumulé de threads actifs[target+8] += nombre cumulé de handles actifs
Surveillez les appels anormaux à NtQuerySystemInformation référençant la classe 253 avec des tampons de sortie de longueur nulle ou des plages d'adresses inhabituelles. Appliquez les dernières mises à jour du fournisseur et les contrôles de télémétrie des points de terminaison.