针对 OnePlus 13 构建版本上 CVE-2026-64560 的设备特定 Android 内核漏洞利用,通过 ADB shell 提供临时 root 权限,并附带经过验证的载荷与移植工具。
OP5D0DL1) CVE-2026-64560针对下列确切 OnePlus 13 (PJZ110) 构建版本的 CVE-2026-64560 Android 概念验证的设备特定适配。它通过仅限 ADB shell 的辅助程序,为当前启动提供临时 root 访问权限。
[!WARNING] 这是实验性内核漏洞利用代码。它可能导致设备重启、破坏内核状态或造成数据丢失。请仅在您拥有或明确获授权测试的设备上使用。请先备份重要数据。
本仓库针对的是内核镜像,其配置文件针对的是构建指纹;一次 OTA 更新可能只改变其中一个而不改变另一个。下面两个构建版本搭载的是字节完全相同的内核,因此它们共享所有偏移量,仅在设备门控字符串上有所不同。docs/BUILDS.md 是新镜像的索引和决策树——请从那里开始。
BP2A.250605.015 | CP2A.260605.016 | |
|---|---|---|
| Android | 16 | 17 |
| 指纹 | OnePlus/PJZ110/OP5D0DL1:16/BP2A.250605.015/V.58c08ac-32ff28e-33c0954:user/release-keys | OnePlus/PJZ110/OP5D0DL1:17/CP2A.260605.016/V.34246cc-e2d62b-e2d628:user/release-keys |
| 内核 | 6.6.118-android15-8-g9bc34d5b0c79-abogki537459655-4k | 相同 |
| 页大小 / CPU | 4 KiB / 8 个在线 | 相同 |
| 解码后镜像 SHA-256 | ee5ee448d2985eeeb7a8b5ad2e1efc34eeb410a8beae0ab484504d739124d613 | 相同 |
| 载荷 | bin/cve-2026-64560-fanout-op13-bp2a.250605.015 | bin/cve-2026-64560-fanout-op13-cp2a.260605.016 |
运行器会拒绝意外的指纹,并在执行前验证每个捆绑的载荷。本仓库不包含固件镜像、设备密钥或设备唯一机密。
要求:
adb 在 PATH 中可用从仓库根目录执行:
sh scripts/boot-campaign.sh -s <serial> -p bin/cve-2026-64560-fanout-op13-cp2a.260605.016 -n 10
在 ROOT_SUCCESS 之后,任何新终端都可以打开临时 root shell:
adb -s <serial> shell -T /data/local/tmp/su
运行 id 以验证 uid=0(root)。访问权限仅在当前启动期间有效;重启后需重新运行。不会修改 boot、vendor 或 system 分区。
该漏洞利用包含一个概率性内核竞态。利用链能可靠地到达桥接阶段,并大约每八次启动中有一次通过其读取门控,因此一轮空启动并不能证明出了什么问题——请为启动次数做好预算,并参阅 docs/BUILDS.md 了解那个看起来像失败信号但实际上并非如此的计数器。
scripts/boot-campaign.sh 是用 POSIX sh 编写的运行器循环,适用于无法使用 scripts/root.ps1 的 PowerShell 宿主的环境。两者应用相同的门控。
Android NDK r29 和 API 35 是可复现构建的默认值。NDK 默认不存在,因此请传入其根目录:
.\scripts\build.ps1 -Profile profiles\op13\CP2A.260605.016.json -NdkRoot <path-to-ndk>
该脚本构建漏洞利用策略和临时 su 辅助程序,剥离输出,并验证其固定的 SHA-256 值。
rotate 会被构建,但有意不提升:它在此设备上导致内核崩溃,并且自定时器重新校准以来尚未重新验证。
python tools/extract_image.py <boot.img> <out> # 首先比较 Image 摘要
python tools/port_target.py --profile profiles/op13/<BUILD>.json
一个构建所拥有的一切都以该构建命名,因此同一设备的两个构建永远不会冲突。有关决策树,请参阅 docs/BUILDS.md;有关完整检查清单,请参阅 docs/PORTING.md。
本仓库所适配的漏洞利用框架——包括漏洞利用源代码、凭据和恢复阶段、临时 su 辅助程序、可复现构建、自适应运行器以及移植工具包——来自 Xiaomi 15 dada 适配:
此处的 OnePlus 13 偏移量、竞态调优和验证是在本设备上实测的,而非照搬;两个内核目标镜像不同,因此几乎所有地址都不同。dada 配置文件和载荷被保留作为框架最初验证时所依据的参考。
原始概念验证以及漏洞本身均早于两者:
确切的修订版本和 Linux 修复列于 docs/UPSTREAM.md。
| 路径 | 用途 |
|---|
bin/ | 已验证的 AArch64 发布载荷 |
profiles/op13/<BUILD>.json | 目标描述,每个构建指纹一个 |
profiles/dada/ | 本框架来源的 Xiaomi 15 目标,保留作为参考 |
src/ | C 源代码,根据共享模板按构建生成 |
targets/ | 针对某个内核镜像的实测偏移量集合 |
evidence/ | 来自成功获取 root 的运行的裁剪链日志 |
scripts/boot-campaign.sh | 带温度、稳定和超时门控的启动循环 |
scripts/sweep.sh | 在一次启动中测试多个调优设置 |
scripts/root.ps1、build.ps1、new-target.ps1 | 运行器、构建和脚手架 |
tools/extract_image.py | 从 boot 转储中提取内核镜像,包含两种摘要 |
tools/kallsyms_extract.py | 从原始 arm64 Image 中提取符号表(自验证) |
tools/ksym.py | 在提取的表中查找符号 |
tools/btf_offsets.py | 从 Image 的 BTF blob 中提取结构体成员偏移量 |
tools/port_target.py | 根据模板 + 配置文件生成构建源代码 |
docs/BUILDS.md | 构建索引、决策树、活动陷阱 |
docs/OP13.md | 每个偏移量的推导过程及证据 |
docs/PORTING.md | 新构建适配和提升检查清单 |
docs/UPSTREAM.md | 上游来源和固定修订版本 |