
Amazon Fire TV Stick 第3世代(sheldonp)における CVE-2026-43499 の悪用に関するセキュリティリサーチの解説記事。一時的な root 取得からブートローダーアンロックまでを扱う。
sheldonp)におけるCVE-2026-43499Linuxカーネルの権限昇格をプリローダーダウングレードとブートローダーアンロックへと連鎖させる。
本リポジトリは、Amazon Fire TV Stick 第3世代(sheldonp)上でのCVE-2026-43499エクスプロイトチェーンの、私による許可された再現を記録したものである。このチェーンでは、一時的なカーネルrootを用いて制御されたプリローダーダウングレードを実行し、その後、既存のKamakiri BootROMワークフローを用いてアンロック済みfastbootに到達し、ブートローダーアンロックを完了した。
これは再現およびデバイス固有のケーススタディである。私はCVE-2026-43499を発見したわけでも、オリジナルのIonStack/GhostLockエクスプロイトを作成したわけでも、Kamakiriを開発したわけでもない。上流の研究者および開発者については以下にクレジットを記載する。
[!IMPORTANT] 本記事は技術記録であり、万能なroot化ガイドではない。ビルドの互換性が重要であり、一時rootは永続rootではない。また、Preloader、LK、TEE、あるいはdm-verityで保護されたパーティションに関するミスは、デバイスを恒久的に文鎮化させる可能性がある。
エンドツーエンドのチェーンは2026年9月12日に完了した。本リポジトリは、テストしたデバイスとソフトウェアのバージョン、使用した正確なアーカイブ、それらのSHA-256ハッシュ、およびプロセス中に取得したオリジナルの証拠を記録している。
スコープ外: 脆弱性の発見、新しいエクスプロイトの実装、リモートエクスプロイト、永続root、またはテストしたsheldonp実機以外のデバイスのサポート。本再現ではカスタムROMはインストールしなかった。
以下は本再現で使用した正確なZIPアーカイブである。アーカイブは本リポジトリでは再配布しない。SHA-256ハッシュを記録しているので、独立に入手したコピーを本ケーススタディで使用したファイルと比較できる。
これらのハッシュは本ケーススタディで使用したコピーを識別するものである。読者は自身のダウンロードを元の上流ソースと比較し、該当するサードパーティライセンスを確認すべきである。
CVE-2026-43499はGhostLockとしても知られ、Linuxカーネルの優先度継承futex/rtmutexパスにおけるuse-after-freeである。プロキシロックのロールバック中に、remove_waiter()がwaiter->taskに格納されたタスクではなくcurrentを操作した。その結果、実際のwaiterは、解放されたカーネルスタックフレーム内の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チェーンを実行する前に必要となる、制御されたプリローダーダウングレードを実行することが可能になる。
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デバッグを有効にしてFire TVをUSB接続し、R0rt1z2のXDAガイドで公開されているsheldon/sheldonpパッケージであるGhostLock 1.1.0を使用した。デバイス固有のランチャーは、Fire TVを再起動してクリーンな状態から開始し、エクスプロイトを展開し、必要に応じて再試行する。
エクスプロイトが成功すると、一時的なroot環境が作成される。私はスクリプトの完了だけを証拠として扱うのではなく、ADBシェルからセキュリティコンテキストを検証した:
adb shell
su
id
rootコンテキストは一時的であり、再起動で失われる。この挙動は重要である。このステージはダウングレードのための有効化プリミティブであり、最終的な永続化メカニズムやブートローダーアンロックそのものではない。
成功した実行ではuid=0が表示され、一時環境のためにSELinuxがpermissiveに変更され、一時的なsuがマウントされ、ツールが扱うFire OSのOTAパッケージが無効化された。

GhostLockエクスプロイトの完全なトレースも補足証拠として保持している。
一時rootが利用可能な状態で、ファームウェアパーティションを手動で書き込むのではなく、パッケージ専用のダウングレードワークフローを使用した。これにより、既存のKamakiriパスと互換性のあるプリローダーが復元された。
ダウングレード後、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リリースは上記に記録している。読者は、これらの高レベルの手順が別のビルドに適用されると仮定するのではなく、バージョン固有の手順についてリンクされた上流ガイドを使用すべきである。
以下を別個のマイルストーンとして扱い、それぞれの証拠を取得した:


私の目標は、すぐにカスタムROMをインストールするのではなく、ストックのFire OSを保持することであった。TWRPではデータのワイプやOSの置き換えを避け、既存のFire OSインストールへ再起動した。ストックのユーザー環境を保持しつつ、TWRPとアンロック済みブートパスは利用可能なままであった。
Fire OSに戻った後、Amazonがエクスプロイトを変更したり復旧したブートチェーンを改変したりするビルドへデバイスをサイレントに移行できないよう、OTA更新を無効のままにした。また、Fire TVコミュニティのツールで一般にARCUSと呼ばれるAmazonのシステムアプリ保護コンポーネントも無効化した。これはAmazonのOSレベルのアプリブロック挙動を変更するものであり、Widevine、サブスクリプション確認、または個々のアプリケーション内で実装されたライセンス執行を回避するものではない。

アンロック済みブートローダーとTWRPがあれば、互換性のあるカスタムソフトウェアをインストールすることも可能になる。このデバイスファミリー向けのコミュニティオプションの1つはAndroid 13ベースのLineageOS 20である。他の互換ROM、リカバリワークフロー、または永続root構成も可能かもしれない。
これらの代替案は本再現の一部ではなかった。それらは独自のファームウェア、TZ、データワイプ、DRM、メモリ、およびリカバリの考慮事項を伴う別個の手順として扱うべきである。
脆弱でサポートされたFire OSビルドでは、デバイス上で既にローカルに実行されているコードが、カーネルの欠陥を悪用して一時的なrootコンテキストを取得できる。このラボでは、そのアクセスが実行中のオペレーティングシステムを超えて攻撃対象領域を拡大した。すなわち、古いBootROMエクスプロイトで利用可能なブートチェーン状態を再導入するファームウェアダウングレードを可能にしたのである。
このチェーンは、デバイスのセキュリティが単一層へのパッチ適用だけに依存しない理由を示している。特権ソフトウェアがセキュリティ上重要なファームウェア状態を変更できる場合、カーネル権限昇格は、より低レベルの永続化やブートチェーン侵害への橋渡しとなり得る。
.
├── 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
本リポジトリはサードパーティのZIPアーカイブを再配布しない。元のXDAガイドから入手し、該当する条項を確認し、そのハッシュを上記に記録した値と比較すること。
CVE-2026-43499の発見、およびオリジナルのIonStack/GhostLock研究とエクスプロイト実装。4.4 GhostLockブランチ、およびsheldon/sheldonpの一時rootとダウングレードガイド。私の貢献は、独立した再現、デバイス固有の実行記録、各ステージがどのように接続するかの分析、および本リポジトリで公開されたオリジナルの証拠である。
維持されているソース台帳はreferences/README.mdにある。主要なソースには以下が含まれる:
4.4ブランチsheldon/sheldonp向け一時rootおよびプリローダーダウングレードsheldon/sheldonp向けブートローダーアンロック、TWRP、およびアンブリックガイドremove_waiter()に対するLinuxカーネルの修正本資料は、教育目的および、あなたが所有するか明示的にテストを許可されているハードウェア上での許可されたセキュリティ研究のために提供される。いかなる保証も伴わない。法的遵守、データ損失、サービス中断、およびあなたの行為に起因するハードウェア損傷については、あなたが責任を負う。
本リポジトリのために作成されたオリジナルのテキストおよび画像は、Creative Commons Attribution 4.0 International Licenseの下でライセンスされる。
サードパーティのツール、エクスプロイトコード、ファームウェア、引用、スクリーンショット、商標、および参照資料は、それぞれの著作者およびライセンスに従う。リンクやクレジットの記載は、その資料をCC BY 4.0の下で再ライセンスするものではない。
| 項目 | 再現ターゲット |
|---|
| デバイス | 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プラットフォームツール | 37.0.1 |
| 一時root実装 | R0rt1z2/GhostLock 1.1.0、4.4ブランチ |
| BootROM実装 | kamakiri-sheldon-1.0 |
| 結果 | 一時root、プリローダーダウングレード、ブートローダーアンロック、TWRP、およびFire OSの保持 |
| アーカイブ | ソース | バージョン | 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 |
| マイルストーン | 検証シグナル | 証拠 |
|---|
| ベースライン | エクスプロイト前のADBシェル | 01-adb-shell-baseline.png |
| カーネルエクスプロイト | rootシェルとuid=0 | 02-ghostlock-root-and-ota.png |
| エクスプロイトトレース | GhostLockプリミティブと資格情報パッチのログ | 03-ghostlock-exploit-trace.png |
| ダウングレード | 脆弱なプリローダーの書き込み成功 | 04-preloader-downgrade.png |
| BootROM | Kamakiriが最初のステージを完了 | 05-kamakiri-bootrom.png |
| アンロック | 接続された画面にハック済みfastbootが表示 | 06-hacked-fastboot.png |
| リカバリ | TWRPが正常に起動 | 07-twrp-first-boot.jpg |
| ストックOSの保持 | 開発者オプションが利用可能な状態でFire OSが起動 | 08-fireos-developer-options.jpg |