
Gerätespezifischer Android-Kernel-Exploit für CVE-2026-64560 auf OnePlus 13 Builds, der temporären Root-Zugriff über die ADB-Shell mit verifizierten Payloads und Portierungswerkzeugen bereitstellt.
OP5D0DL1) CVE-2026-64560Gerätespezifische Anpassung des Android-Proof-of-Concept für CVE-2026-64560 für
die unten aufgeführten exakten OnePlus 13 (PJZ110)-Builds. Es bietet temporären
Root-Zugriff für den aktuellen Boot über einen nur auf ADB-Shell basierenden
Helfer.
[!WARNING] Dies ist experimenteller Kernel-Exploit-Code. Er kann das Gerät neu starten, den Kernel-Zustand beschädigen oder Datenverlust verursachen. Verwende ihn nur auf einem Gerät, das dir gehört oder das du ausdrücklich zum Testen autorisiert bist. Sichere zuerst wichtige Daten.
Dieses Repository zielt auf Kernel-Images, und seine Profile zielen auf
Build-Fingerprints; ein OTA kann das eine ändern, ohne das andere zu ändern.
Beide unten aufgeführten Builds enthalten den byte-identischen Kernel, teilen
also jeden Offset und unterscheiden sich nur in der Device-Gate-Zeichenkette.
docs/BUILDS.md ist der Index und der Entscheidungsbaum für
ein neues Image — beginne dort.
BP2A.250605.015 | CP2A.260605.016 | |
|---|---|---|
| Android | 16 | 17 |
| Fingerprint | 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 |
| Kernel | 6.6.118-android15-8-g9bc34d5b0c79-abogki537459655-4k | same |
| Seitengröße / CPUs | 4 KiB / 8 online | same |
| Decoded Image SHA-256 | ee5ee448d2985eeeb7a8b5ad2e1efc34eeb410a8beae0ab484504d739124d613 | same |
| Payload | bin/cve-2026-64560-fanout-op13-bp2a.250605.015 | bin/cve-2026-64560-fanout-op13-cp2a.260605.016 |
Der Runner lehnt einen unerwarteten Fingerprint ab und verifiziert jede mitgelieferte Payload vor der Ausführung. Dieses Repository enthält keine Firmware-Images, Geräteschlüssel oder geräteindividuelle Geheimnisse.
Voraussetzungen:
adb verfügbar im PATHVom Repository-Stammverzeichnis aus:
sh scripts/boot-campaign.sh -s <serial> -p bin/cve-2026-64560-fanout-op13-cp2a.260605.016 -n 10
Nach ROOT_SUCCESS kann jedes neue Terminal die temporäre Root-Shell öffnen:
adb -s <serial> shell -T /data/local/tmp/su
Führe id aus, um uid=0(root) zu verifizieren. Der Zugriff gilt nur für den
aktuellen Boot; nach einem Neustart erneut ausführen. Es werden keine Boot-,
Vendor- oder System-Partitionen verändert.
Der Exploit enthält ein probabilistisches Kernel-Race. Die Kette erreicht die
Bridge-Stufe zuverlässig und passiert deren Read-Gate etwa bei einem von acht
Boots, daher ist eine leere Folge von Boots kein Beweis dafür, dass etwas
kaputt ist — plane Boots ein, und siehe
docs/BUILDS.md für den einen
Zähler, der wie ein Fehlersignal aussieht und keines ist.
scripts/boot-campaign.sh ist die Runner-Schleife in POSIX sh, für Hosts, auf
denen der PowerShell-Host für scripts/root.ps1 nicht verfügbar ist. Beide
wenden dieselben Gates an.
Android NDK r29 und API 35 sind die Standardwerte für reproduzierbare Builds. Das NDK ist standardmäßig nicht vorhanden, gib daher sein Root-Verzeichnis an:
.\scripts\build.ps1 -Profile profiles\op13\CP2A.260605.016.json -NdkRoot <path-to-ndk>
Das Skript baut die Exploit-Strategien und den temporären-su-Helfer, strippt die Ausgaben und verifiziert deren festgeschriebene SHA-256-Werte.
rotate wird gebaut, aber bewusst nicht befördert: Es hat den Kernel auf diesem
Gerät zum Absturz gebracht und wurde seit der Timer-Neukalibrierung nicht erneut
validiert.
python tools/extract_image.py <boot.img> <out> # compare the Image digest first
python tools/port_target.py --profile profiles/op13/<BUILD>.json
Alles, was zu einem Build gehört, ist nach dem Build benannt, sodass zwei Builds
eines Geräts niemals kollidieren. Siehe docs/BUILDS.md für
den Entscheidungsbaum und docs/PORTING.md für die
vollständige Checkliste.
Das Exploit-Framework, das dieses Repository anpasst — die Exploit-Quellen, die
Credential- und Restoration-Stufen, der temporäre-su-Helfer, der reproduzierbare
Build, der adaptive Runner und das Portierungs-Toolkit — stammt aus der
Xiaomi 15 dada-Anpassung:
Die OnePlus 13-Offsets, das Race-Tuning und die Validierung hier wurden auf
diesem Gerät gemessen und nicht übernommen; die beiden Kernel-Ziele sind
unterschiedliche Images, daher unterscheidet sich fast jede Adresse. Das
dada-Profil und die Payloads bleiben als Referenz erhalten, gegen die das
Framework ursprünglich validiert wurde.
Der ursprüngliche Proof of Concept und die Schwachstelle selbst liegen upstream von beiden:
Exakte Revisionen und Linux-Fixes sind in
docs/UPSTREAM.md aufgeführt.
Apache License 2.0, übernommen aus der Upstream-Arbeit. Siehe LICENSE
und NOTICE.
| Pfad | Zweck |
|---|
bin/ | Verifizierte AArch64-Release-Payloads |
profiles/op13/<BUILD>.json | Zielbeschreibungen, eine pro Build-Fingerprint |
profiles/dada/ | Das Xiaomi 15-Ziel, von dem dieses Framework stammt, als Referenz beibehalten |
src/ | C-Quellen, pro Build aus den gemeinsamen Templates generiert |
targets/ | Gemessene Offset-Sätze für ein Kernel-Image |
evidence/ | Gekürzte Ketten-Logs von Läufen, die Root erlangt haben |
scripts/boot-campaign.sh | Boot-Schleife mit Thermal-, Settle- und Timeout-Gates |
scripts/sweep.sh | Mehrere Tuning-Einstellungen in einem Boot |
scripts/root.ps1, build.ps1, new-target.ps1 | Runner, Build und Scaffolding |
tools/extract_image.py | Kernel-Image aus einem Boot-Dump, beide Digests |
tools/kallsyms_extract.py | Symboltabelle aus einem rohen arm64-Image (selbstvalidierend) |
tools/ksym.py | Symbol-Lookup in einer extrahierten Tabelle |
tools/btf_offsets.py | Struct-Member-Offsets aus dem BTF-Blob des Images |
tools/port_target.py | Generiert eine Build-Quelle aus Template + Profil |
docs/BUILDS.md | Build-Index, Entscheidungsbaum, Kampagnen-Fallstricke |
docs/OP13.md | Herleitung jedes Offsets, mit den Belegen |
docs/PORTING.md | Checkliste für Anpassung und Beförderung neuer Builds |
docs/UPSTREAM.md | Upstream-Herkunft und feste Revisionen |