
Exploit del kernel Android specifico per dispositivo per CVE-2026-64560 sulle build di OnePlus 13, che fornisce root temporaneo tramite shell ADB con payload verificati e strumenti di porting.
OP5D0DL1) CVE-2026-64560Adattamento specifico per dispositivo della proof of concept Android CVE-2026-64560 per
le build esatte del OnePlus 13 (PJZ110) elencate di seguito. Fornisce accesso root
temporaneo per il boot corrente tramite un helper utilizzabile solo da shell ADB.
[!WARNING] Questo è codice di exploit kernel sperimentale. Può riavviare il dispositivo, corrompere lo stato del kernel o causare perdita di dati. Usalo solo su un dispositivo di tua proprietà o che sei esplicitamente autorizzato a testare. Esegui prima il backup dei dati importanti.
Questo repository prende di mira le immagini del kernel, e i suoi profili prendono di mira le build
fingerprint; un OTA può cambiare l'una senza l'altra. Entrambe le build seguenti includono
il kernel identico byte per byte, quindi condividono ogni offset e differiscono solo nella
stringa di device-gate. docs/BUILDS.md è l'indice e l'albero
decisionale per una nuova immagine — inizia da lì.
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 |
| Page size / 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 |
Il runner rifiuta un fingerprint inatteso e verifica ogni payload incluso prima dell'esecuzione. Questo repository non contiene immagini firmware, chiavi del dispositivo o segreti univoci del dispositivo.
Requisiti:
adb disponibile nel PATHDalla radice del repository:
sh scripts/boot-campaign.sh -s <serial> -p bin/cve-2026-64560-fanout-op13-cp2a.260605.016 -n 10
Dopo ROOT_SUCCESS, qualsiasi nuovo terminale può aprire la shell root temporanea:
adb -s <serial> shell -T /data/local/tmp/su
Esegui id per verificare uid=0(root). L'accesso dura solo per il boot corrente; riesegui
dopo un riavvio. Nessuna partizione boot, vendor o system viene modificata.
L'exploit contiene una race del kernel probabilistica. La catena raggiunge in modo affidabile lo
stadio bridge e supera il suo read gate circa un boot su otto, quindi una serie di boot
vuota non è prova che qualcosa sia rotto — pianifica i boot, e consulta
docs/BUILDS.md per l'unico
contatore che sembra un segnale di fallimento e non lo è.
scripts/boot-campaign.sh è il loop del runner in POSIX sh, per host dove l'host
PowerShell per scripts/root.ps1 non è disponibile. Entrambi applicano gli stessi gate.
Android NDK r29 e API 35 sono i default per la build riproducibile. L'NDK non è presente di default, quindi passa la sua root:
.\scripts\build.ps1 -Profile profiles\op13\CP2A.260605.016.json -NdkRoot <path-to-ndk>
Lo script compila le strategie dell'exploit e l'helper temporary-su, rimuove i simboli dagli output e verifica i loro valori SHA-256 fissati.
rotate viene compilato ma deliberatamente non promosso: ha mandato in crash il kernel su questo
dispositivo e non è stato rivalidato dalla ricalibrazione del timer.
python tools/extract_image.py <boot.img> <out> # compare the Image digest first
python tools/port_target.py --profile profiles/op13/<BUILD>.json
Tutto ciò che appartiene a una build è nominato secondo la build, quindi due build di un dispositivo
non entrano mai in collisione. Vedi docs/BUILDS.md per l'albero decisionale e
docs/PORTING.md per la checklist completa.
Il framework di exploit che questo repository adatta — i sorgenti dell'exploit, gli
stadi di credential e restoration, l'helper temporary-su, la build riproducibile,
il runner adattivo e il toolkit di porting — proviene dall'adattamento
Xiaomi 15 dada:
Gli offset del OnePlus 13, il tuning della race e la validazione qui sono stati misurati su questo
dispositivo anziché essere trasferiti; i due target kernel sono immagini diverse, quindi
quasi ogni indirizzo differisce. Il profilo dada e i payload sono mantenuti come
il riferimento rispetto al quale il framework è stato originariamente validato.
La proof of concept originale, e la vulnerabilità stessa, è a monte di entrambi:
Le revisioni esatte e le correzioni Linux sono elencate in
docs/UPSTREAM.md.
Apache License 2.0, ereditata dal lavoro upstream. Vedi LICENSE
e NOTICE.
| Path | Scopo |
|---|
bin/ | Payload AArch64 di release verificati |
profiles/op13/<BUILD>.json | Descrizioni dei target, una per build fingerprint |
profiles/dada/ | Il target Xiaomi 15 da cui proviene questo framework, mantenuto come riferimento |
src/ | Sorgenti C, generati per build dai template condivisi |
targets/ | Set di offset misurati per un'immagine del kernel |
evidence/ | Log della catena ridotti dalle esecuzioni che hanno ottenuto root |
scripts/boot-campaign.sh | Loop di boot con gate termici, di settle e di timeout |
scripts/sweep.sh | Diverse impostazioni di tuning in un solo boot |
scripts/root.ps1, build.ps1, new-target.ps1 | Runner, build e scaffolding |
tools/extract_image.py | Immagine del kernel da un boot dump, entrambi i digest |
tools/kallsyms_extract.py | Tabella dei simboli da una Image arm64 grezza (auto-validante) |
tools/ksym.py | Ricerca di simboli in una tabella estratta |
tools/btf_offsets.py | Offset dei membri delle struct dal blob BTF della Image |
tools/port_target.py | Genera un sorgente di build da un template + profilo |
docs/BUILDS.md | Indice delle build, albero decisionale, insidie della campagna |
docs/OP13.md | Derivazione di ogni offset, con le prove |
docs/PORTING.md | Adattamento a nuove build e checklist di promozione |
docs/UPSTREAM.md | Provenienza upstream e revisioni fissate |