
Código de exploit proof-of-concept direcionado à CVE-2026-40369, demonstrando a vulnerabilidade para pesquisa e testes de segurança autorizados.
🛡️ Módulo de Ferramenta de Segurança de IA
CVE-2026-40369: Incremento de Endereço de Kernel via NtQuerySystemInformation Class 253 LPE
Módulo Oficial de Auditoria de Segurança e Exploração para o Ecossistema de Ferramentas de Segurança de IA
🌐 Demonstração Web • 📚 Site do Projeto • 💬 Chat da Comunidade
Navegação do Site: Início • Atualizações • Downloads • Módulos
Este módulo fornece ferramentas de diagnóstico e análise técnica aprofundada para o CVE-2026-40369, uma vulnerabilidade de incremento arbitrário de endereço de kernel (primitiva de escrita) no ntoskrnl.exe do Windows via NtQuerySystemInformation (Class 253 / SystemProcessInformationExtension).
Como NtQuerySystemInformation é acessível a partir de contextos restritos (incluindo o sandbox do navegador Chrome), esta vulnerabilidade fornece a um usuário local sem privilégios uma primitiva de escalonamento de privilégios determinística e 100% confiável.
| Especificação | Valor Atribuído | Notas |
|---|---|---|
| Identificador CVE | CVE-2026-40369 |
Incremento Arbitrário de Endereço do Kernel via NtQuerySystemInformation |
| Componente | Windows Kernel (ntoskrnl.exe) |
ExpGetProcessInformation |
| Vetor de Acionamento | NtQuerySystemInformation(SystemProcessInformationExtension, kernelAddr, 0, &needed) |
Length=0 contorna ProbeForWrite |
| Versões do Windows | Windows 11 24H2–25H2 | Acessível a partir do sandbox do Chrome |
| Impacto e Vetor | Incremento arbitrário de endereço do kernel (Primitiva de Escrita) | Bloco de construção determinístico para escalada de privilégios |
| Autenticação Necessária | Nenhuma (Usuário local sem privilégios / Em sandbox) | Nenhum token ou privilégio especial necessário |
ExpGetProcessInformation é chamada por ExpQuerySystemInformation para as classes de informação 5, 0x39, 0x94, 0xFC e 0xFD (253 = SystemProcessInformationExtension). Ao tratar a classe 253, a variável v95 é inicializada diretamente a partir do ponteiro do buffer sem sanitização ou verificações 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 do despacho. No entanto, ProbeForWrite com Length=0 é um NO-OP completo, pois é condicionado por uma verificação interna if (Length). Passar um endereço arbitrário do kernel com Length=0 faz com que ponteiros não validados passem diretamente para o loop de iteração de processos.
Para cada processo no sistema, o kernel realiza incrementos aritméticos triplos no endereço de memória alvo:
[target+0] += 1 por processo (contagem total de processos do sistema)[target+4] += contagem cumulativa de threads ativas[target+8] += contagem cumulativa de handles ativos
Monitore chamadas anômalas a NtQuerySystemInformation referenciando a Classe 253 com buffers de saída de comprimento zero ou faixas de endereço incomuns. Aplique as atualizações mais recentes do fornecedor e controles de telemetria de endpoint.