lukasmaar/qaic-page-uaf
GitHub: lukasmaar/qaic-page-uaf
针对 Qualcomm QAIC 内核驱动页面级 UAF 漏洞的本地权限提升 PoC 项目,附带完整的 QEMU 复现环境与调试工具链。
Stars: 11 | Forks: 3
# 页面 UAF QAIC
本仓库包含一个针对 QAIC page 级别 UAF(释放后使用)漏洞的本地权限提升方案。它包含一个可启动的 QEMU 镜像、一个已打补丁的内核镜像、与 QAIC 相关的内核模块,以及一个用户态的 PoC(概念验证)。
[poc.webm](https://github.com/user-attachments/assets/41bfa89d-fd8f-4ac4-aa24-b13be251c288)
## 快速开始
构建内核镜像和 QAIC/MHI 模块,然后将它们放入 `images/` 和 `vmshare/module/` 中。如果缺少 `linux/` 目录,脚本会下载配置好的上游 Linux commit,应用 `qaic-fake-online.patch`,安装 `config`,然后进行构建:
```
make build-kernel
```
构建用户态 exploit 并将其复制到 VM 共享目录中:
```
make build-exploits
```
启动 VM:
```
make run-vm
```
附加 GDB 到内核:
```
make gdb
```
通过顶层 Makefile 运行所有操作:
```
make
```
## 内核与修复参考
- 使用的 Linux 内核基础 commit:`7d0a66e4bb9081d75c82ec4957c50034cb0ea449` (`Linux 6.18`)。
- 内核 commit 网页:https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7d0a66e4bb9081d75c82ec4957c50034cb0ea449
- QAIC 修复补丁网页:https://lore.kernel.org/all/20260423204412.2861046-1-zachary.mckevitt@oss.qualcomm.com/
## 仓库结构
- `Makefile`:顶层辅助目标,用于构建 exploit、启动 VM、启动 GDB 以及清理暂存的内核构建产物。
- `build-kernel.sh`:构建本地 `linux/` 源码树,将 `vmlinux`、`bzImage` 和 `System.map` 放入 `images/`,并将 `qaic.ko` 和 `mhi.ko` 放入 `vmshare/module/`。如果缺少 `linux/`,它会下载配置好的 Linux commit,应用 `qaic-fake-online.patch`,并首先安装 `config`。
- `config`:使用的内核配置。
- `qaic-fake-online.patch`:该补丁使得 QAIC 路径可以在没有真实 Qualcomm Cloud AI 100 硬件的本地离线环境中使用。
- `vm-start.sh`:使用已暂存的内核、原始磁盘镜像、9p 共享文件夹、伪造的 QAIC 启用设置、TCP 端口 `1234` 上的默认 GDB stub 以及 `--no-kvm`、`--no-kaslr` 和 `--wait-gdb` 等辅助选项来启动 Buildroot QEMU VM。
- `gdb-start.sh`:针对 `images/vmlinux` 启动 GDB。
- `exploits/`:用户态 PoC(概念验证)源码树。详见 `exploits/README.md`。
- `images/`:QEMU 使用的内核和磁盘构建产物。详见 `images/README.md`。
- `vmshare/`:通过 9p 导出到 VM 中的宿主机目录。详见 `vmshare/README.md`。
标签:Linux内核, Web报告查看器, 安全渗透, 客户端加密, 本地提权, 概念验证, 身份验证强制, 释放后重用, 高通AI加速器