
CVE-2026-43499に対する、ガードされたソースのみのHumane AI Pin root PoC
Humane AI Pin 向け GhostLock は、特定の小売ファームウェアビルド1つを対象とした、オープンソースのブートスコープ型 root 実証コード(PoC)です。通常の認可済み ADB シェルから、Linux の rtmutex use-after-free である CVE-2026-43499 を試行します。
ランナーは意図的に狭く作られています。何かを仕込む前に、完全なファームウェアフィンガープリント、カーネルビルド、スロット、シェル UID、SELinux 状態を確認します。不一致があれば実行を停止します。
[!WARNING] これはカーネルエクスプロイトです。Pin をパニック、再起動、またはハードハングさせる可能性があります。ハードハングした場合は、デバイスを取り外してバッテリーが切れるまで待つ必要があるかもしれません。所有していて復旧できる Pin にのみ使用してください。root は再起動で消えます。
| 項目 | 許容値 |
|---|---|
| デバイス | Humane AI Pin、小売ユニット |
| ファームウェア | qti/atoll/atoll:12/SKQ1.230401.001/101.000470.45.20:user/release-keys |
| Android | 12 |
| カーネル | 4.14.190-perf、ビルド日時 Mon Nov 4 18:37:23 PST 2024 |
| スロット | _b のみ |
| アーキテクチャ | aarch64 |
| プロファイル | humane-aipin-45.20 |
| カーネル Image SHA-256 | d4f4e0deb20871fce207f1f095ba1934162081c2f10afaccbb2e6a1e938719fb |
| リリース候補リプレイ | 最終クリーンブートリプレイ待ち |
スロット _a、開発者ファームウェア、近接するファームウェアバージョン、その他の Qualcomm atoll 製品は拒否されます。詳細は互換性の詳細を参照してください。Android フィンガープリントが一致するだけではこのチェックを回避できません。A/B スロットは、同じユーザー空間ビルド識別子の下でも異なるブートイメージとカーネルレイアウトを持つ可能性があります。
必要なもの:
adb、Python 3.10 以降、make、C コンパイラ;28.2.13676358 (r28c)。このリポジトリには、ADB 秘密鍵、ファームウェアイメージ、ブートイメージ、bugreport、デバイスログ、ビルド済みペイロードは含まれていません。
Android のコマンドラインツールで固定バージョンの NDK をインストールします:
sdkmanager "ndk;28.2.13676358"
ADB がすでに Pin を device として認識していることを確認します:
$ adb devices
List of devices attached
YOUR_SERIAL device
リポジトリをクローンし、すべてのコマンドで同じ明示的なシリアルを使用します:
git clone https://github.com/TheAndersMadsen/humane-aipin-ghostlock.git
cd humane-aipin-ghostlock
./ghostlock check --serial YOUR_SERIAL
./ghostlock run --serial YOUR_SERIAL
./ghostlock verify --serial YOUR_SERIAL
check は読み取り専用です。検出されたファームウェア、カーネル、スロット、シェル境界、SELinux 状態、バッテリー、電源、NDK リビジョンを表示します。
run はガード付きの試行を1回実行します。ROOT YOUR_SERIAL の入力を求め、ソースからビルドし、プッシュ後にペイロードハッシュを検証し、KASLR を導出するために現在のブートの bugreport を取得し、デフォルトではその生の bugreport を削除し、2回目の完全なプリフライト後にのみエクスプロイトを開始します。
verify は独立して、ブートスコープ型 root ブローカーに id と getenforce の実行を要求します。
検証成功時の出力は次のようになります:
uid=0(root) gid=0(root) groups=0(root) context=u:r:kernel:s0
SELinux: Permissive
Boot epoch: <redacted>; uptime: <redacted>s
正確な SELinux コンテキストはカーネルとファームウェアに固有です。合格条件は、同じブートで SELinux が permissive の状態で、ブローカー経由で UID/GID 0 になることです。
現在のブートに対して、ペイロードは次を行います:
init_cred に置き換える;/data/local/tmp/su に書き込む;パーティションへの書き込み、ブートローダーのアンロック、モジュールのインストール、verified boot の変更、再起動後の永続化、ネットワークサービスへの接続、テレメトリのアップロードは行いません。
別の ADB シェルから root コマンドを実行するには:
adb -s YOUR_SERIAL shell '/data/local/tmp/su -c id'
ランナーはカーネルブートごとに1回の試行を許可します。ミス、タイムアウト、切断、不確実な状態、パニック、再起動が報告された場合は、そのブートで再試行しないでください。まず再起動し、再度 check を実行してください。
ADB がまだ応答する場合:
adb -s YOUR_SERIAL reboot
Pin がハードハングし、ADB が応答しない場合は、すべての外部電源を切断してください。検証済みの小売ハードウェアには、ユーザーがアクセスできる信頼できる強制再起動手段がないため、復旧には電源を再接続する前にバッテリーが切れるまで待つ必要があるかもしれません。
通常の再起動後、root は消えます。ステージングされたファイルは /data/local/tmp 以下に不活性なまま残る可能性があります。クリーンなシェルで削除できます:
adb -s YOUR_SERIAL shell + 'rm -f /data/local/tmp/ghostlock-aipin.so /data/local/tmp/su + /data/local/tmp/.ghostlock-su.sock + /data/local/tmp/.ghostlock-aipin-attempt'
PoC を使用する前に SAFETY.md を、失敗した実行を再試行する前に TROUBLESHOOTING.md を読んでください。
実行記録はモード 0700 の一時ディレクトリに書き込まれます。これらにはデバイスシリアル、ブート識別子、カーネルアドレス、エクスプロイトのテレメトリが含まれます。そのディレクトリや生の Android bugreport を issue に添付しないでください。
代わりに縮小レポートを作成してください:
./ghostlock report /private/tmp/ghostlock-aipin-TIMESTAMP + --output ghostlock-report.json
共有する前に JSON を確認してください。リダクターはシリアル、ブート ID、ホストパス、生のコマンド出力、カーネルアドレスを省略します。PRIVACY.md を参照してください。
Android ペイロードをビルドします:
./ghostlock build
すべてのホストテストと2つの独立したビルドを実行します:
./scripts/verify-release.sh
ペイロードは次に書き込まれます:
source/build/humane-aipin-45.20/bin/preload.so
ビルド成果物は Git で無視されます。リリースアセットは、対応する GitHub リリースに添付されたチェックサムと照合して検証してください。
このエクスプロイトは、CVE のスタック上に残るダングリング rt_mutex_waiter を利用して、制御された赤黒木更新をルーティングします。KernelSnitch はまず futex ハッシュのタイミングを通じて mm_struct アドレスをリークします。次に同一 PFN の perf-event ゲートにより、解放された order-3 slab ページが、破壊トリガーが進む前に制御されたソケットバッファデータによって再利用されたことを証明します。ブートに紐づく KASLR ベースは、少なくとも2つの一致する現在のブートの WARN アンカーから導出されます。得られた読み書きルートは現在のタスクを解決し、ブートスコープ型の credential 変更を実行します。
ターゲットプロファイルには、このルートで消費されるオフセットとシンボルのみが含まれます。カーネル Image と完全なシンボルテーブルは配布されません。TECHNICAL.md で各段階とフェイルクローズドゲートについて説明しています。
これは、サポート対象外のコンシューマーデバイス向けの実験的な研究リリースです。汎用的な Android root 化ツールではなく、Humane、HP、CosmOS とは提携していません。
コードは Apache-2.0 の下でライセンスされています。実装は NebuSec の Apache-2.0 の CyberMeowfia の成果物を出発点としています。AI Pin への移植とリリースツールは PROVENANCE.md と THIRD_PARTY_NOTICES.md に記載されています。
脆弱性や誤用の懸念を報告する前に SECURITY.md を読んでください。