
Amazon Fire TV Stick 第3世代(sheldonp)における CVE-2026-43499 の悪用に関するセキュリティリサーチの解説記事。一時的な root 取得からブートローダーアンロックまでを扱う。
sheldonp)における CVE-2026-43499Linux カーネルの権限昇格を preloader のダウングレードとブートローダーのアンロックへと連鎖させる。
このリポジトリは、Amazon Fire TV Stick 第3世代(sheldonp)上で CVE-2026-43499 のエクスプロイトチェーンを、許可を得て再現した記録をまとめたものです。このチェーンでは、一時的なカーネル root を用いて制御された preloader のダウングレードを実行し、その後、既存の Kamakiri BootROM ワークフローを用いてアンロック済みの fastboot に到達し、ブートローダーのアンロックを完了しました。
これは再現およびデバイス固有のケーススタディです。私は CVE-2026-43499 を発見したわけでも、元の IonStack/GhostLock エクスプロイトを作成したわけでも、Kamakiri を開発したわけでもありません。上流の研究者および開発者へのクレジットは以下に記載しています。
[!IMPORTANT] この記事は技術的な記録であり、汎用的な root 化ガイドではありません。ビルドの互換性が重要であり、一時的な root は永続的な root ではありません。また、Preloader、LK、TEE、あるいは dm-verity で保護されたパーティションに関わるミスは、デバイスを恒久的に文鎮化させる可能性があります。
エンドツーエンドのチェーンは 2026年9月12日に完了しました。このリポジトリには、テストしたデバイスとソフトウェアのバージョン、使用した正確なアーカイブ、それらの SHA-256 ハッシュ、およびプロセス中に取得したオリジナルの証拠が記録されています。
| 項目 | 再現対象 |
|---|---|
| デバイス | Amazon Fire TV Stick 第3世代 |
| モデル | AFTSSS |
| コードネーム | sheldonp |
| オペレーティングシステム | Fire OS 7.7.1.6 / ビルド PS7716.5666N |
| インクリメンタル | 0036005356164 |
| Android ベース | Android 9 |
| カーネル | 4.4.162+ |
| BootROM ステージに使用したホスト | Ubuntu 26.04.1 LTS、ライブ USB セッションとして起動 |
| Android platform tools | 37.0.1 |
| 一時 root 実装 | R0rt1z2/GhostLock 1.1.0、4.4 ブランチ |
| BootROM 実装 | kamakiri-sheldon-1.0 |
| 結果 | 一時 root、preloader のダウングレード、ブートローダーのアンロック、TWRP、および Fire OS の保持 |
スコープ外: 脆弱性の発見、新しいエクスプロイトの実装、リモートからのエクスプロイト、永続的な root、またはテストした sheldonp 実機以外のデバイスのサポート。この再現ではカスタム ROM はインストールしていません。
以下は、この再現で使用した正確な ZIP アーカイブです。アーカイブはこのリポジトリでは再配布されません。SHA-256 ハッシュを記録しているため、独立に入手したコピーをこのケーススタディで使用したファイルと比較できます。
| アーカイブ | 入手元 | バージョン | SHA-256 |
|---|---|---|---|
ghostlock-sheldon-v1.1.0.zip | XDA の一時 root およびダウングレードガイド | GhostLock 1.1.0 | 8D541F7DF58487AF6D6D45D778482D3455A71F62E32651751CFE0B2DDFC6554F |
kamakiri-sheldon-1.0.zip | XDA のブートローダーアンロックガイド | Kamakiri Sheldon 1.0 | 1B07161D9F894935E5918A9B8F9A230F67B9487E9863C242E758338E8C6C5784 |
これらのハッシュはこのケーススタディで使用したコピーを識別するものです。読者はダウンロードしたファイルを元の上流ソースと照合し、適用されるサードパーティライセンスを確認することをお勧めします。
CVE-2026-43499 は GhostLock とも呼ばれ、Linux カーネルの優先度継承 futex/rtmutex パスにおける use-after-free です。プロキシロックのロールバック中に、remove_waiter() が waiter->task に格納されたタスクではなく current を操作していました。その結果、実際のウェイターは、解放済みのカーネルスタックフレーム内の rt_mutex_waiter を pi_blocked_on が依然として参照したまま、ユーザースペースへ戻る可能性がありました。
元の IonStack の研究は、このダングリングスタック参照をローカル権限昇格プリミティブへと変換します。R0rt1z2 はこの手法を、4.4 カーネル上で Fire OS 7 を実行する Fire TV Stick 第3世代および Fire TV Stick Lite(sheldonp/sheldon)向けに適応させました。
このケーススタディにおける重要な違いは、CVE-2026-43499 がブートローダーを直接アンロックするわけではないという点です。これは一時的なカーネルレベルのアクセスを提供します。この短時間のアクセスにより、古い Kamakiri BootROM チェーンを実行する前に必要となる、制御された preloader のダウングレードを実行することが可能になります。
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]
このチェーンは2つの独立したセキュリティ境界を越えます:
デバイスを変更する前に、ハードウェアのコードネームを特定し、ADB経由でFire OS、ビルド、ブートローダー、カーネルのバージョンを記録しました。
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
得られたベースラインは sheldonp / AFTSSS、Fire OS PS7716.5666N、インクリメンタル 0036005356164、Android 9、カーネル 4.4.162+ でした。シリアル番号は意図的に省略しています。

ADB デバッグを有効にした状態で USB 経由で Fire TV を接続し、R0rt1z2 の XDA ガイドで公開されている sheldon/sheldonp パッケージである GhostLock 1.1.0 を使用しました。デバイス固有のランチャーは、Fire TV を再起動してクリーンな状態から開始し、エクスプロイトを展開し、必要に応じて再試行します。
エクスプロイトが成功すると、一時的な root 環境が作成されます。スクリプトの完了だけを証拠とせず、ADB シェルからセキュリティコンテキストを検証しました:
adb shell
su
id
ルートコンテキストは一時的なものであり、再起動時に失われます。この挙動は重要です。この段階はダウングレードを可能にするための基盤となるプリミティブであり、最終的な永続化メカニズムやブートローダーのアンロックそのものではありません。
成功した実行では uid=0 が表示され、一時環境のために SELinux が permissive に変更され、一時的な su がマウントされ、ツールが扱う Fire OS の OTA パッケージが無効化されました。

GhostLock エクスプロイトの完全なトレースも裏付け証拠として保持されています。
一時的な root が利用可能になったため、ファームウェアパーティションを手動で書き込むのではなく、パッケージ専用のダウングレードワークフローを使用しました。これにより、既存の Kamakiri パスと互換性のある preloader が復元されました。
ダウングレード後、Fire TV は意図的に Fire OS での起動を停止しました。この特定のワークフローでは、この起動しない状態はライブカーネル段階と USB BootROM 段階の間の想定された引き継ぎです。これは、任意の失敗したフラッシュが復旧可能であることの証明と混同してはなりません。
[!CAUTION] Preloader を絶対に消去しないでください。LK、TEE、Preloader、boot、recovery、system、vendor、その他の保護されたパーティションへの書き込みを即興で行わないでください。上流のガイドは、重要なファームウェアへの損傷が恒久的なハードブリックを引き起こす可能性があると警告しています。なぜなら、動作する復旧パスが残らない可能性があるからです。

このデバイスで使用した Kamakiri ワークフローは Linux 向けにサポートおよび文書化されていました。そのため、Ubuntu Live セッションを起動し、ホストに Ubuntu をインストールすることなく、低レベルの USB BootROM 段階を含む完全なアンロックワークフローをそこで実行しました。この段階は Windows や macOS ではテストしていません。
アンロックガイドで参照されている sheldon/sheldonp Kamakiri パッケージを使用した手順は次のとおりです。
bootrom-step.sh を起動し、電源オフの Fire TV を USB で接続します。fastboot-step.sh を実行してアンロックワークフローを完了します。Kamakiri はこのユニットを sheldonp として検出し、RPMB ダウングレードを完了し、チェーンに必要な TZ/LK コンポーネントをフラッシュし、microloader を注入し、デバイスをハック済みの fastboot モードへ強制移行しました。

アーカイブのハッシュと Ubuntu のリリースは上記に記録されています。読者は、これらの高レベルの手順が別のビルドにも適用されると仮定するのではなく、バージョン固有の手順についてはリンクされた上流のガイドを使用すべきです。
以下をそれぞれ別個のマイルストーンとして扱い、それぞれの証拠を取得しました。