
OnePlus 13ビルドにおけるCVE-2026-64560向けのデバイス固有Androidカーネルエクスプロイト。検証済みペイロードと移植ツールを備え、ADBシェル経由で一時的なrootを提供します。
OP5D0DL1) CVE-2026-64560以下に示す正確な OnePlus 13 (PJZ110) ビルド向けに、CVE-2026-64560 Android 実証コードをデバイス固有に適応させたものです。ADB シェルのみで動作するヘルパーを通じて、現在のブートに対する一時的な root アクセスを提供します。
[!WARNING] これは実験的なカーネルエクスプロイトコードです。デバイスを再起動させたり、カーネル状態を破壊したり、データ損失を引き起こす可能性があります。所有しているデバイス、または明示的にテストを許可されたデバイスでのみ使用してください。まず重要なデータをバックアップしてください。
このリポジトリはカーネルイメージを対象とし、そのプロファイルはビルドフィンガープリントを対象としています。OTA は一方を変更しても他方を変更しない可能性があります。以下の両ビルドはバイト単位で同一のカーネルを搭載しているため、すべてのオフセットを共有し、デバイスゲート文字列のみが異なります。docs/BUILDS.md は新しいイメージのためのインデックスと決定木です — まずそこから始めてください。
BP2A.250605.015 | CP2A.260605.016 | |
|---|---|---|
| Android | 16 | 17 |
| フィンガープリント | OnePlus/PJZ110/OP5D0DL1:16/BP2A.250605.015/V.58c08ac-32ff28e-33c0954:user/release-keys | OnePlus/PJZ110/OP5D0DL1:17/CP2A.260605.016/V.34246cc-e2d62b-e2d628:user/release-keys |
| カーネル | 6.6.118-android15-8-g9bc34d5b0c79-abogki537459655-4k | 同一 |
| ページサイズ / CPU | 4 KiB / 8 オンライン | 同一 |
| デコード済み Image SHA-256 | ee5ee448d2985eeeb7a8b5ad2e1efc34eeb410a8beae0ab484504d739124d613 | 同一 |
| ペイロード | bin/cve-2026-64560-fanout-op13-bp2a.250605.015 | bin/cve-2026-64560-fanout-op13-cp2a.260605.016 |
ランナーは予期しないフィンガープリントを拒否し、実行前に同梱されたすべてのペイロードを検証します。このリポジトリにはファームウェアイメージ、デバイスキー、デバイス固有のシークレットは含まれていません。
要件:
PATH に adb が通った Android Platform Toolsリポジトリのルートから:
sh scripts/boot-campaign.sh -s <serial> -p bin/cve-2026-64560-fanout-op13-cp2a.260605.016 -n 10
ROOT_SUCCESS の後、任意の新しいターミナルで一時的な root シェルを開けます:
adb -s <serial> shell -T /data/local/tmp/su
id を実行して uid=0(root) を確認してください。アクセスは現在のブートのみ有効です。再起動後に再実行してください。boot、vendor、system パーティションは変更されません。
このエクスプロイトには確率的なカーネルレースが含まれています。チェーンはブリッジ段階に確実に到達し、その読み取りゲートを約 8 回に 1 回のブートでクリアするため、ブートの空振りは何かが壊れている証拠にはなりません — ブートを予算化し、失敗シグナルのように見えてそうではない唯一のカウンタについては docs/BUILDS.md を参照してください。
scripts/boot-campaign.sh は POSIX sh によるランナーループで、scripts/root.ps1 の PowerShell ホストが利用できないホスト向けです。どちらも同じゲートを適用します。
Android NDK r29 と API 35 が再現可能ビルドのデフォルトです。NDK はデフォルトでは存在しないため、そのルートを渡してください:
.\scripts\build.ps1 -Profile profiles\op13\CP2A.260605.016.json -NdkRoot <path-to-ndk>
このスクリプトはエクスプロイト戦略と一時 su ヘルパーをビルドし、出力をストリップし、固定された SHA-256 値を検証します。
rotate はビルドされますが、意図的に昇格されていません: このデバイスでカーネルをダウンさせ、タイマー再調整以降再検証されていません。
python tools/extract_image.py <boot.img> <out> # compare the Image digest first
python tools/port_target.py --profile profiles/op13/<BUILD>.json
ビルドが所有するものはすべてビルドにちなんで命名されるため、1 つのデバイスの 2 つのビルドが衝突することはありません。決定木については docs/BUILDS.md を、完全なチェックリストについては docs/PORTING.md を参照してください。
このリポジトリが適応させたエクスプロイトフレームワーク — エクスプロイトソース、資格情報と復元の段階、一時 su ヘルパー、再現可能ビルド、適応型ランナー、移植ツールキット — は Xiaomi 15 dada 適応版に由来します:
ここでの OnePlus 13 のオフセット、レースチューニング、検証は持ち越されたものではなくこのデバイス上で測定されました。2 つのカーネルターゲットは異なるイメージであるため、ほぼすべてのアドレスが異なります。dada プロファイルとペイロードは、フレームワークが元々検証された参照として保持されています。
元の実証コード、および脆弱性そのものは、両者の上流にあります:
正確なリビジョンと Linux の修正は docs/UPSTREAM.md に記載されています。
Apache License 2.0、上流の作業から継承されています。LICENSE と NOTICE を参照してください。
| パス | 目的 |
|---|
bin/ | 検証済みの AArch64 リリースペイロード |
profiles/op13/<BUILD>.json | ターゲット記述、ビルドフィンガープリントごとに 1 つ |
profiles/dada/ | このフレームワークの元となった Xiaomi 15 ターゲット、参照用として保持 |
src/ | C ソース、共有テンプレートからビルドごとに生成 |
targets/ | カーネルイメージ用の測定済みオフセットセット |
evidence/ | root 取得に成功した実行からのトリミング済みチェーンログ |
scripts/boot-campaign.sh | 熱、セトル、タイムアウトのゲートを備えたブートループ |
scripts/sweep.sh | 1 回のブートで複数のチューニング設定 |
scripts/root.ps1, build.ps1, new-target.ps1 | ランナー、ビルド、スキャフォールディング |
tools/extract_image.py | ブートダンプからカーネルイメージを抽出、両方のダイジェスト |
tools/kallsyms_extract.py | 生の arm64 Image からシンボルテーブルを抽出 (自己検証) |
tools/ksym.py | 抽出されたテーブルでのシンボル検索 |
tools/btf_offsets.py | Image の BTF blob からの構造体メンバーオフセット |
tools/port_target.py | テンプレート + プロファイルからビルドソースを生成 |
docs/BUILDS.md | ビルドインデックス、決定木、キャンペーンの落とし穴 |
docs/OP13.md | すべてのオフセットの導出、証拠付き |
docs/PORTING.md | 新規ビルドへの適応と昇格チェックリスト |
docs/UPSTREAM.md | 上流の来歴と修正リビジョン |