
Port Android verificato per CVE-2026-98260 per Xiaomi 15 dada OS4.0.0.22.XOCCNXM
dada) Android 17 portPoC temporaneo di privilege escalation locale per OS4.0.0.22.XOCCNXM e la sua build kernel esatta. CVE-2026-98260 è stato riprodotto su dispositivo reale partendo da una normale shell ADB, ottenendo SELinux Permissive e UID/GID 0 nello stesso ciclo di avvio.
| Voce | Valore verificato |
|---|---|
| Dispositivo | Xiaomi 15, nome in codice dada |
| Firmware | OS4.0.0.22.XOCCNXM, Android 17 |
| Fingerprint | Xiaomi/dada/dada:17/CP2A.260605.016/OS4.0.0.22.XOCCNXM:user/release-keys |
| Kernel | 6.6.118-android15-8-gb9cc6ec16bc8-abogki536571621-4k |
| Punto di partenza | Shell ADB normale autorizzata, UID 2000, SELinux Enforcing |
| Risultato | Nuova sessione ADB che ottiene UID/GID 0 e SELinux Permissive tramite client temporaneo |
Questo risultato non include le capability Linux complete: la shell root temporanea ha CapEff=0. Il codice sorgente utilizza una scrittura controllata di 8 byte azzerati per modificare UID/GID e lo stato SELinux, senza impostare a 1 i bit delle capability. Ambito di validazione definisce le condizioni di successo e i limiti.
Su Windows installare Android Platform Tools, Android NDK r29 (29.0.14206865) e r28.2 (28.2.13676358). Il payload principale è compilato staticamente con r29/API 35; l'helper generico order1-churn utilizza r28.2/API 35. Se l'NDK si trova in un'altra directory, è possibile passare -Ndk29, -Ndk28.
powershell -NoProfile -ExecutionPolicy Bypass -File .\build.ps1 -VerifyReference
-VerifyReference confronta i quattro artefatti ricostruiti con i binari rilasciati in bin/ tramite SHA-256. Gli hash completi fissano la versione rilasciata; il processo di build non si connette al telefono.
Collegare e autorizzare un dispositivo esattamente corrispondente, aggiungere adb al PATH:
powershell -NoProfile -ExecutionPolicy Bypass -File .\run_98260.ps1
Se sono presenti più dispositivi ADB, passare -Serial <numero di serie del dispositivo>. Lo script verifica il nome in codice del dispositivo, il fingerprint completo, il kernel, gli hash dei quattro binari locali e lato dispositivo e il boot ID, quindi esegue separatamente le fasi SELinux e UID/GID. Riporta successo solo se una nuova sessione ADB conferma UID 0 e Permissive. Per impostazione predefinita tenta al massimo tre volte per fase; in caso di PARKED si arresta, non è possibile recuperare manualmente il suo zombie pericoloso. L'output grezzo viene salvato solo localmente in logs/, ignorata da Git.
In caso di successo, eseguire un comando con UID 0 nel ciclo di avvio corrente:
adb shell /data/local/tmp/dada98260-su -c id
L'exploit dipende dal recupero probabilistico delle pagine e non garantisce un successo a ogni tentativo. Dopo il riavvio le modifiche alla memoria e il servizio temporaneo scompaiono. Questo repository non esegue il flashing di alcuna partizione e non dichiara supporto per altri firmware o per stringhe di versione identiche ma immagini kernel diverse.
Il repository contiene solo il codice sorgente di CVE-2026-98260, i programmi lato dispositivo ricostruibili e i fatti di successo documentati. Boot originali, immagini di partizione, bugreport, numeri di serie dei dispositivi, indirizzi di runtime, log grezzi e tentativi falliti non sono stati caricati. Il codice e la documentazione originali di questo progetto sono distribuiti con licenza MIT; le licenze di terze parti dell'Android NDK relative ai binari precompilati sono indicate nelle note.