
Security research write-up on exploiting CVE-2026-43499 on the Amazon Fire TV Stick 3rd Gen (sheldonp), from temporary root to bootloader unlock.
sheldonp)Chaining a Linux kernel privilege escalation into a preloader downgrade and bootloader unlock.
This repository documents my authorized reproduction of the CVE-2026-43499 exploitation chain on an Amazon Fire TV Stick 3rd Gen (sheldonp). The chain used temporary kernel root to run a controlled preloader downgrade, then used the existing Kamakiri BootROM workflow to reach unlocked fastboot and complete the bootloader unlock.
This is a reproduction and device-specific case study. I did not discover CVE-2026-43499, create the original IonStack/GhostLock exploit, or develop Kamakiri. The upstream researchers and developers are credited below.
[!IMPORTANT] This write-up is a technical record, not a universal rooting guide. Build compatibility matters, temporary root is not persistent root, and mistakes involving Preloader, LK, TEE, or dm-verity-protected partitions can permanently brick the device.
The end-to-end chain was completed on September 12, 2026. This repository records the tested device and software versions, the exact archives used, their SHA-256 hashes, and original evidence captured during the process.
Out of scope: vulnerability discovery, a new exploit implementation, remote exploitation, persistent root, or support for devices other than the tested sheldonp unit. No custom ROM was installed during this reproduction.
The following are the exact ZIP archives used during this reproduction. The archives are not redistributed in this repository; their SHA-256 hashes are recorded so independently obtained copies can be compared with the files used in this case study.
These hashes identify the copies used in this case study; readers should still compare their downloads against the original upstream sources and review the applicable third-party licenses.
CVE-2026-43499, also known as GhostLock, is a use-after-free in the Linux kernel's priority-inheritance futex/rtmutex path. During proxy-lock rollback, remove_waiter() operated on current instead of the task stored in waiter->task. As a result, the actual waiter could return to userspace with pi_blocked_on still referencing an rt_mutex_waiter in a released kernel stack frame.
The original IonStack research turns that dangling stack reference into a local privilege-escalation primitive. R0rt1z2 adapted the technique to the Fire TV Stick 3rd Gen and Fire TV Stick Lite (sheldonp/sheldon) running Fire OS 7 on a 4.4 kernel.
The key distinction in this case study is that CVE-2026-43499 does not unlock the bootloader directly. It provides temporary kernel-level access. That short-lived access makes it possible to perform the controlled preloader downgrade required before the older Kamakiri BootROM chain can run.
flowchart LR
A[Fire OS 7 on sheldonp] --> B[CVE-2026-43499 / GhostLock]
B --> C[Temporary root shell]
C --> D[Controlled preloader downgrade]
D --> E[Expected non-booting transition state]
E --> F[Kamakiri BootROM stage]
F --> G[Unlocked fastboot]
G --> H[Bootloader unlocked]The chain crosses two separate security boundaries:
Before changing the device, I identified the hardware codename and recorded the Fire OS, build, bootloader, and kernel versions over ADB.
adb devices -l
adb shell getprop ro.product.device
adb shell getprop ro.product.model
adb shell getprop ro.build.version.release
adb shell getprop ro.build.version.incremental
adb shell getprop ro.build.fingerprint
adb shell getprop ro.bootloader
adb shell uname -a
adb shell id
The resulting baseline was sheldonp / AFTSSS, Fire OS PS7716.5666N, incremental 0036005356164, Android 9, and kernel 4.4.162+. The serial number is deliberately omitted.

I connected the Fire TV over USB with ADB debugging enabled and used GhostLock 1.1.0, the sheldon/sheldonp package published with the R0rt1z2 XDA guide. The device-specific launcher reboots the Fire TV to start from a fresh state, deploys the exploit, and retries when necessary.
Successful exploitation creates a temporary root environment. I verified the security context from an ADB shell rather than treating script completion alone as proof:
adb shell
su
id
The root context is ephemeral and is lost on reboot. That behavior is important: this stage is an enabling primitive for the downgrade, not the final persistence mechanism or the bootloader unlock itself.
The successful run showed uid=0, changed SELinux to permissive for the temporary environment, mounted the temporary su, and disabled the Fire OS OTA packages handled by the tool.

The full GhostLock exploit trace is retained as supporting evidence.
With temporary root available, I used the package's dedicated downgrade workflow instead of manually writing firmware partitions. This restored a preloader compatible with the existing Kamakiri path.
After the downgrade, the Fire TV intentionally stopped booting into Fire OS. In this specific workflow, that non-booting state is the expected handoff between the live-kernel stage and the USB BootROM stage. It must not be confused with proof that an arbitrary failed flash is recoverable.
[!CAUTION] Never erase Preloader. Do not improvise writes to LK, TEE, Preloader, boot, recovery, system, vendor, or other protected partitions. The upstream guides warn that damage to critical firmware can cause a permanent hard brick because a working recovery path may not remain available.

The Kamakiri workflow used for this device was supported and documented for Linux. I therefore booted an Ubuntu Live session and performed the full unlock workflow there, including the low-level USB BootROM stage, without installing Ubuntu on the host. I did not test this stage on Windows or macOS.
Using the sheldon/sheldonp Kamakiri package referenced by the unlock guide, the process was:
bootrom-step.sh and connect the powered-off Fire TV over USB.fastboot-step.sh to finish the unlock workflow.Kamakiri detected the unit as sheldonp, completed the RPMB downgrade, flashed the chain's required TZ/LK components, injected the microloader, and forced the device into its hacked fastboot mode.

The archive hashes and Ubuntu release are recorded above. Readers should use the linked upstream guides for version-specific instructions rather than assuming these high-level steps apply to another build.
I treated the following as separate milestones and captured evidence for each one:


My goal was to retain stock Fire OS rather than install a custom ROM immediately. In TWRP I avoided wiping data or replacing the operating system, then rebooted into the existing Fire OS installation. TWRP and the unlocked boot path remained available while the stock user environment was preserved.
After returning to Fire OS, I kept OTA updates disabled so Amazon could not silently move the device to a build that changed the exploit or modified the recovered boot chain. I also disabled the Amazon system app-protection component commonly referred to in Fire TV community tooling as ARCUS. This changes Amazon's OS-level app-blocking behavior; it does not bypass Widevine, subscription checks, or license enforcement implemented inside individual applications.

An unlocked bootloader and TWRP also make it possible to install compatible custom software. One community option for this device family is LineageOS 20 based on Android 13. Other compatible ROMs, recovery workflows, or persistent-root configurations may also be possible.
Those alternatives were not part of this reproduction. They should be treated as separate procedures with their own firmware, TZ, data-wipe, DRM, memory, and recovery considerations.
On a vulnerable and supported Fire OS build, code already running locally on the device can exploit the kernel flaw to obtain a temporary root context. In this lab, that access expanded the attack surface beyond the running operating system: it enabled a firmware downgrade that reintroduced a boot-chain condition usable by an older BootROM exploit.
This chain illustrates why device security depends on more than patching a single layer. A kernel privilege escalation can become a bridge to lower-level persistence or boot-chain compromise when privileged software can modify security-critical firmware state.
.
├── README.md # Case study and methodology
├── LICENSE # CC BY 4.0 for original documentation and media
├── images/
│ ├── README.md # Evidence index and redaction guidance
│ └── evidence/ # Sanitized screenshots and photographs
└── references/
└── README.md # Source ledger and artifact guidance
This repository does not redistribute the third-party ZIP archives. Obtain them from the original XDA guides, review their applicable terms, and compare their hashes with the values recorded above.
CVE-2026-43499.4.4 GhostLock branch, and the sheldon/sheldonp temporary-root and downgrade guide.My contribution is the independent reproduction, device-specific execution record, analysis of how the stages connect, and the original evidence published in this repository.
The maintained source ledger is in references/README.md. Primary sources include:
4.4 branchsheldon/sheldonpsheldon/sheldonpremove_waiter()This material is provided for educational use and authorized security research on hardware you own or are explicitly permitted to test. It comes with no warranty. You are responsible for legal compliance, data loss, service disruption, and hardware damage resulting from your actions.
Original text and images authored for this repository are licensed under the Creative Commons Attribution 4.0 International License.
Third-party tools, exploit code, firmware, quotations, screenshots, trademarks, and referenced materials remain subject to their respective authorship and licenses. Inclusion of a link or credit does not relicense that material under CC BY 4.0.
| Field | Reproduction target |
|---|
| Device | Amazon Fire TV Stick 3rd Gen |
| Model | AFTSSS |
| Codename | sheldonp |
| Operating system | Fire OS 7.7.1.6 / build PS7716.5666N |
| Incremental | 0036005356164 |
| Android base | Android 9 |
| Kernel | 4.4.162+ |
| Host used for BootROM stage | Ubuntu 26.04.1 LTS, booted as a live USB session |
| Android platform tools | 37.0.1 |
| Temporary-root implementation | R0rt1z2/GhostLock 1.1.0, 4.4 branch |
| BootROM implementation | kamakiri-sheldon-1.0 |
| Result | Temporary root, preloader downgrade, unlocked bootloader, TWRP, and preserved Fire OS |
| Archive | Source | Version | SHA-256 |
|---|
ghostlock-sheldon-v1.1.0.zip | Temporary-root and downgrade guide on XDA | GhostLock 1.1.0 | 8D541F7DF58487AF6D6D45D778482D3455A71F62E32651751CFE0B2DDFC6554F |
kamakiri-sheldon-1.0.zip | Bootloader-unlock guide on XDA | Kamakiri Sheldon 1.0 | 1B07161D9F894935E5918A9B8F9A230F67B9487E9863C242E758338E8C6C5784 |
| Milestone | Validation signal | Evidence |
|---|
| Baseline | ADB shell before exploitation | 01-adb-shell-baseline.png |
| Kernel exploit | Root shell and uid=0 | 02-ghostlock-root-and-ota.png |
| Exploit trace | GhostLock primitive and credential-patching log | 03-ghostlock-exploit-trace.png |
| Downgrade | Vulnerable preloader written successfully | 04-preloader-downgrade.png |
| BootROM | Kamakiri completed its first stage | 05-kamakiri-bootrom.png |
| Unlock | Hacked fastboot displayed on the connected screen | 06-hacked-fastboot.png |
| Recovery | TWRP booted successfully | 07-twrp-first-boot.jpg |
| Stock OS retained | Fire OS booted with Developer Options available | 08-fireos-developer-options.jpg |