Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ghostlock-s26 — 适用于 Galaxy S26 的 GhostLock (CVE-2026-43499) | Kitploit
工具/GitHubGitHub/snothin/ghostlock-s26
Android安全权限提升持久化机制漏洞利用后渗透利用移动安全Payload 开发二进制利用
GitHubsnothin/ghostlock-s26

ghostlock-s26

适用于 Galaxy S26 的 GhostLock (CVE-2026-43499)

查看仓库
26813520天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

GhostLock (CVE-2026-43499) 适用于 Galaxy S26

CVE-2026-43499 移植到三星 Galaxy S26 系列 — Android 16 / GKI 6.12。 单个二进制文件,三条内核线,运行时动态参数 匹配:理论上无需针对每个构建单独编译即可覆盖整个 S26 系列。

大多数 GhostLock 移植工作都针对单一设备或单一固件。 本仓库是一个全新的移植,针对 S26 目标重写了所有机制,并预期覆盖整个系列

公告

@diabl0w 的 https://github.com/diabl0w/DFRoot 是一个更简单、更好的解决方案。我建议使用它。

本仓库中的漏洞利用已被合并到 https://github.com/snothin/GhostSam。GhostSam 更复杂;DFRoot 更纯粹、更简单。

概览

在维护 snothin/CyberMeowfia 的同时, 我发现原始的 pipe physrw 通道不稳定(它会切断网络),因此 我放弃了那条路线并探索替代方案。后来我发现 monovibe 在我所探索的路径上走得更远,于是采用了该方法,并 经过反复调试后本仓库得以成形。

  • 漏洞:futex PI 释放后使用竞态 → pselect fd_set 播种 → 一次对齐的 qword 内核写入 → 任意内核读/写。
  • 设备:Galaxy S26 / S26+ / S26 Ultra,骁龙(国行 + 国际版)和 Exynos 变体。
  • 结果:usermode helper 以 uid=0(root) context=u:r:kernel:s0 运行;通过 su_daemon 在 /data/local/tmp/temp_su.sock 上提供持久 root shell。
  • KDP 绕过:不写入凭据 — root 阶段在 system_unbound_wq 上伪造一个 work_struct,其函数为 call_usermodehelper_exec_work,因此内核 以 init 凭据执行我们的守护进程。KDP 对凭据页的 EL2 防护永远不会 被触发。
  • DEFEX 绕过:ksud 延迟加载在执行前被 bind-mount 覆盖到一个休眠的系统 二进制文件(logcat)上;DEFEX 的 safeplace 规则看到的是一个白名单路径。

攻击流程

tracefs slide oracle → KASLR base
pselect + futex PI race
  → one aligned qword kernel write
  → attr carrier (controller + data misc nodes)
      the write links both nodes
      clearing controller.minor makes the next open land on data
      data fd reads/writes any kernel address
  → UMH root (workqueue injection)
      forged work_struct on system_unbound_wq
      ptmx open/close storm wakes a worker
      kernel execs daemon with init creds
  → KernelSU late-load: ksud bind-mounted over logcat in a private
    mount namespace (DEFEX safeplace sees a whitelisted path)
  → su_daemon keeps serving /data/local/tmp/temp_su.sock

支持的固件

参数按内核线(三条线:cn、intl、exynos)匹配,而不是 按单个构建匹配。未知的 OTA 构建会按机型和 CSC 回退到最接近的已知线。 完全未知的机型会被拒绝(fail-closed)。内嵌的构建 列表以 exploit/src/params_table.c 为准。 未列出固件的自定义内核线可在运行时提供 (/data/local/tmp/ghostlock-lines.conf,参见环境)。 移植到新设备或固件时所需的参数参见 PORTING.md。

型号设备代号已测试构建
SM-S942x (S26 骁龙)m1qS9420ZCS4AZG1, S942QOPU1AZDE, S942U1UES4AZG3, S942USQS4AZG3
SM-S947x (S26+ 骁龙)m2qS9470ZCS4AZG1, S947USQS4AZG3
SM-S9480 (S26 Ultra 国行)m3qS9480ZCS3AZF1, S9480ZCS4AZG1(已测试构建)
SM-S948x (S26 Ultra)m3qS9480ZHS4AZG1, S948BXXS4AZG5/6, S948NKSS4AZG3, S948U1UES2AZE1, S948USQS4AZG3
SM-S942B (S26 Exynos)m1sS942BXXS4AZG5
SM-S947B (S26+ Exynos)m2sS947BXXS3AZF1, S947BXXS4AZG5

构建

需要 Android NDK(r26+)。只需运行:

cd exploit
make preload
# produces build/bin/preload.so (exploit) and build/embed/su_daemon_aarch64_pie (embedded daemon)

用法

将 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

# Single attempt:
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 可覆盖。

环境

每个选项都以环境变量、配置文件键 (/data/local/tmp/ghostlock.conf,每行一个 key=value)和 CLI 标志 (--key=value)的形式存在;优先级为 默认值 < 文件 < 环境变量 < CLI。使用 --help 运行会打印完整表格(名称、默认值、范围、重载标志)。

行为开关:

环境变量键效果
BOOT_FORCE=1boot.force允许在同一次启动中重新运行
GHOSTLOCK_NO_KSU=1ksu.skip跳过 KernelSU 延迟加载:仅宽松的临时 root + su socket;重启可恢复设备(Knox 风险)
ALLOW_SHELL=1root.allow_shell在延迟加载期间将 shell uid 添加到 KernelSU 允许列表
PARAMS_CUSTOM=1params.custom仅使用自定义内核线(若不可用则 fail closed)

其余键用于调整竞态(walk.*、heap.* 等)。exynos 线 为配对的 ksud 注入 KSUD_TREE=exynos(驱动接口 32601);其他 线不携带 tree 覆盖。未列出固件的自定义内核线放在 /data/local/tmp/ghostlock-lines.conf(line_id=... 加上每行一个字段, 参见 PORTING.md)。

致谢

  • Nebula Security — CVE-2026-43499 发现
  • polygraphene — CyberMeowfia 基线(首个 CVE 实现)
  • monovibe — s26u-m3q-temp-root:每子进程锁区域、UMH root、启动声明纪律
  • lukasmaar — kernelsnitch:mm_struct futex-hash 泄漏(内置于 exploit/src/kernelsnitch/)
  • veritas501 — pipe-primitive:pipe CAN_MERGE 覆写概念
  • BuSung-dev — Root-My-Galaxy:配套应用的基础

License

本仓库以 Apache-2.0 许可证发布;完整文本参见 LICENSE, 代码来源参见 NOTICE。

下载工具