
Код эксплойта proof-of-concept для CVE-2026-40369, демонстрирующий уязвимость для исследований и авторизованного тестирования безопасности.
🛡️ Модуль инструмента безопасности ИИ
CVE-2026-40369: Инкремент адреса ядра через NtQuerySystemInformation Class 253 (LPE)
Официальный модуль аудита безопасности и эксплуатации для экосистемы инструментов безопасности ИИ
🌐 Веб-демо • 📚 Веб-сайт проекта • 💬 Чат сообщества
Навигация по сайту: Главная • Обновления • Загрузки • Модули
Этот модуль предоставляет диагностические инструменты и глубокий технический анализ для CVE-2026-40369 — уязвимости произвольного инкремента адреса ядра (примитива записи) в Windows ntoskrnl.exe через NtQuerySystemInformation (Class 253 / SystemProcessInformationExtension).
Поскольку NtQuerySystemInformation доступна из ограниченных контекстов (включая песочницу браузера Chrome), эта уязвимость даёт непривилегированному локальному пользователю детерминированный примитив повышения привилегий с надёжностью 100%.
| Спецификация | Присвоенное значение | Примечания |
|---|---|---|
| Идентификатор CVE | CVE-2026-40369 |
Произвольный инкремент адреса ядра через NtQuerySystemInformation |
| Компонент | Ядро Windows (ntoskrnl.exe) |
ExpGetProcessInformation |
| Вектор срабатывания | NtQuerySystemInformation(SystemProcessInformationExtension, kernelAddr, 0, &needed) |
Length=0 обходит ProbeForWrite |
| Версии Windows | Windows 11 24H2–25H2 | Достижимо из песочницы Chrome |
| Воздействие и вектор | Произвольный инкремент адреса ядра (примитив записи) | Детерминированный строительный блок для повышения привилегий |
| Требуется аутентификация | Нет (непривилегированный локальный пользователь / в песочнице) | Специальные токены или привилегии не требуются |
ExpGetProcessInformation вызывается из ExpQuerySystemInformation для информационных классов 5, 0x39, 0x94, 0xFC и 0xFD (253 = SystemProcessInformationExtension). При обработке класса 253 переменная v95 инициализируется напрямую из указателя на буфер без санитизации или проверок на 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 вызывает ProbeForWrite(buffer, Length, alignment) перед диспетчеризацией. Однако ProbeForWrite с Length=0 — это полный NO-OP, поскольку он ограничен внутренней проверкой if (Length). Передача произвольного адреса ядра с Length=0 успешно пропускает непроверенные указатели прямо в цикл итерации по процессам.
Для каждого процесса в системе ядро выполняет тройной арифметический инкремент по целевому адресу памяти:
[target+0] += 1 на каждый процесс (общее число процессов в системе)[target+4] += суммарное число активных потоков[target+8] += суммарное число активных дескрипторов
Отслеживайте аномальные вызовы NtQuerySystemInformation с обращением к классу 253 с выходными буферами нулевой длины или необычными диапазонами адресов. Применяйте последние обновления от производителя и средства телеметрии конечных точек.
⚠️ ВАЖНО: Этот модуль создан специально для безопасного выполнения и диагностики в экосистеме AI Security Tool. Всегда используйте проверенные модули из официальных репозиториев.