针对 Toshiba/Amazon hazel Fire TV 平台的临时 root 漏洞利用,基于 CVE-2026-43499。
当前漏洞利用已在以下设备上测试通过:
| 设备 | Toshiba Fire TV (hazel) |
| Fire OS 版本 | PS7716.5665N |
| 内核 | Linux 4.9.113 |
| 产品型号 | AFTHA004 (C350) |
[!WARNING] 此漏洞利用是固件特定的。内核地址、结构体偏移量以及回收链的部分内容均针对
PS7716.5665N进行了校准。未经移植或重新校准,请勿在当前固件或设备上运行此构建版本。
堆回收失败可能导致系统崩溃并重启电视。Root 权限是临时的,重启后即失效。如果电视死机,您可以随时断电重启。
该漏洞利用 CVE-2026-43499 从普通 ADB shell 环境中获取临时 UID 0 权限。
漏洞利用链包括:
mm_struct 跨缓存回收成功运行后,漏洞利用会保持 root 路径所需的内核对象存活,并启动一个本地命令守护进程。
SELinux 保持 强制(Enforcing) 模式。通过 root 守护进程执行的命令保留 shell SELinux 域以及该固件上可用的能力边界集。
hazel_root.c 主漏洞利用、内核读写阶段、凭据修补以及 root 命令客户端/服务器hazel_reclaim.h 内核地址泄露和 mm_struct 跨缓存回收以下示例假定使用 Linux 且 adb 位于 $PATH 中。
将 NDK 设置为您的 Android NDK r27d 目录:
export NDK=/path/to/android-ndk-r27d
然后编译:
"$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/clang" \
--target=armv7a-linux-androideabi28 \
-O2 -g0 -Wall -Wextra -Wpedantic -fPIE -pie \
hazel_root.c -o hazel_root \
-pthread
使用 ADB 连接到电视。
如果使用网络 ADB:
adb connect <TV_IP>:5555
推送漏洞利用程序:
adb push hazel_root /data/local/tmp/hazel_root
adb shell chmod 755 /data/local/tmp/hazel_root
从干净启动开始:
adb shell 'cd /data/local/tmp && ./hazel_root'
成功运行后输出类似以下内容:
[root] uid=0 euid=0 gid=0
[ROOT] uid=0 daemon pid=... socket=@hazel_root
回收过程是概率性的。不成功的尝试可能干净地失败,也可能导致系统崩溃并重启电视。
如果电视重启,请让其正常启动后重试。
漏洞利用成功后,请勿启动另一个副本。让漏洞利用进程保持运行,因为它们保留了临时 root 路径所使用的内核对象。
同一个二进制文件也可作为 root 守护进程的客户端:
adb shell 'cd /data/local/tmp && ./hazel_root --client id'
例如:
adb shell 'cd /data/local/tmp && ./hazel_root --client getenforce'
adb shell 'cd /data/local/tmp && ./hazel_root --client cat /proc/self/status'
adb shell 'cd /data/local/tmp && ./hazel_root --client "id; uname -a"'
成功的 root 命令应报告:
uid=0(root) gid=0(root) context=u:r:shell:s0
请注意,UID 0 并不能绕过 SELinux。SELinux 保持强制(Enforcing)模式。
通过 root 守护进程推送并运行 disable_ota.sh:
adb push disable_ota.sh /data/local/tmp/disable_ota.sh
adb shell chmod 755 /data/local/tmp/disable_ota.sh
adb shell 'cd /data/local/tmp && ./hazel_root --client "sh /data/local/tmp/disable_ota.sh"'
该脚本会禁用两个 Fire OS OTA 软件包,清除待处理的更新程序状态,并验证最终的软件包管理器状态。它不会重启电视。
disable_amazon_services.sh 会禁用 Arcus 远程配置代理、ADEP 应用阻止服务、自动内容识别(ACR)以及所测试的 Hazel 固件上存在的专用 Amazon 指标软件包。ACR 被禁用且其存储数据被清除,但其只读系统 APK 不会被删除,因此该操作是可逆的。该脚本不会禁用 CrashManager 或底层日志软件包,因此在开发或排查漏洞利用问题时,内核崩溃和 Dropbox 诊断功能仍然可用。
推送脚本并通过 root 守护进程运行:
adb push disable_amazon_services.sh /data/local/tmp/disable_amazon_services.sh
adb shell chmod 755 /data/local/tmp/disable_amazon_services.sh
adb shell 'cd /data/local/tmp && ./hazel_root --client "sh /data/local/tmp/disable_amazon_services.sh"'
在不做任何更改的情况下显示当前状态:
adb shell 'cd /data/local/tmp && ./hazel_root --client "sh /data/local/tmp/disable_amazon_services.sh status"'
如需恢复软件包:
adb shell 'cd /data/local/tmp && ./hazel_root --client "sh /data/local/tmp/disable_amazon_services.sh restore"'
启用或禁用的软件包状态通常会在重启后保留。恢复软件包不会恢复禁用期间被清除的软件包数据。
重启电视:
adb reboot
该漏洞利用仅修改临时内核状态,因此重启后 root 权限即失效。
在 root 权限生效期间对持久化 Android 设置或数据所做的有意更改,当然不一定会因重启而还原。
目前唯一确认的目标是:
hazel
PS7716.5665N
Linux 4.9.113
ARM32
其他电视似乎也使用 hazel 设备名称,但共享代号并不意味着它们共享相同的内核构建、主板或结构体布局。
请勿假定与其他 hazel 设备兼容。
如果您有兴趣移植该漏洞利用,有用的目标信息包括:
adb shell getprop ro.product.model
adb shell getprop ro.product.device
adb shell getprop ro.product.board
adb shell getprop ro.build.version.incremental
adb shell uname -a
当前源代码中硬编码的内核地址和结构体偏移量必须针对每个目标固件进行验证。
这是针对该 Fire OS 构建所使用的厂商 ARM32 Linux 4.9 内核的 CVE-2026-43499 漏洞利用链的固件特定适配。
Hazel 特定的工作包括:
mm_struct SLUB/缓存整形因此,当前漏洞利用不应被视为通用的 CVE-2026-43499 PoC,也不应被视为适用于任意 Fire TV 固件的即插即用漏洞利用。
此移植是通过研究并借鉴以下公开的 CVE-2026-43499 漏洞利用实现而开发的:
gitchw/ghostlock-cve-2026-43499 ARM32 futex-PI UAF 参考以及等待者/所有者/消费者链。
NebuSec/CyberMeowfia IonStack 漏洞利用,包括更广泛的伪造 fops、内核读写和凭据修补设计。
F-19-F/IonStackQuest3
ARM32 setsockopt(MCAST_JOIN_SOURCE_GROUP) 栈压印和同步参考。
R0rt1z2/GhostLock-5.10 在交叉检查 Hazel 移植时使用的其他 ARM32 布局和漏洞利用技术。
开发过程中使用了 AI 编码代理,特别是用于帮助分析崩溃和反汇编数据、定位并交叉检查目标特定的内核地址和结构体偏移量,以及协助调试和代码清理。
该漏洞利用已在目标 PS7716.5665N 设备上进行了测试,发布版本所使用的目标特定值已针对该固件进行了验证。AI 输出仅作为研究辅助手段,而非事实来源。