🛡️ AI 安全工具模块
CVE-2026-40369:NtQuerySystemInformation Class 253 内核地址递增本地提权
AI 安全工具生态官方安全审计与利用模块
本模块为 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)。然而,Length=0 的 ProbeForWrite 是完全的空操作(NO-OP),因为它受内部 if (Length) 检查所控制。以 Length=0 传入任意内核地址,可成功将未经验证的指针直接传入进程迭代循环。
对于系统上的每个进程,内核会对目标内存地址执行三次算术递增:
[target+0] 每进程 += 1(系统进程总数)[target+4] += 累计活动线程数[target+8] += 累计活动句柄数
监控对 NtQuerySystemInformation 的异常调用,特别是引用类 253 且输出缓冲区长度为零或地址范围异常的情况。应用最新的厂商更新和端点遥测控制。
⚠️ 重要:此模块专为在 AI Security Tool 生态系统中安全执行和诊断而构建。请始终使用来自官方仓库的已验证模块。
要执行监控与诊断脚本,请确保已安装 AI Security Tool 核心引擎,可通过预构建二进制文件安装,或从源码构建: