
Verifizierter CVE-2026-98260 Android-Port für Xiaomi 15 dada OS4.0.0.22.XOCCNXM
dada) Android 17 PortEin temporärer lokaler Privilegieneskalations-PoC für OS4.0.0.22.XOCCNXM und den exakt zugehörigen Kernel-Build. CVE-2026-98260 wurde auf einem echten Gerät aus einer gewöhnlichen ADB-Shell reproduziert und erlangte innerhalb desselben Boot-Zyklus SELinux Permissive sowie UID/GID 0.
| Element | Verifizierter Wert |
|---|---|
| Gerät | Xiaomi 15, Codename 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 |
| Ausgangspunkt | Autorisierte gewöhnliche ADB-Shell, UID 2000, SELinux Enforcing |
| Ergebnis | Neue ADB-Sitzung erhält über einen temporären Client UID/GID 0, SELinux Permissive |
Dieses Ergebnis enthält keine vollständigen Linux-Capabilities: Die temporäre Root-Shell hat CapEff=0. Der Quellcode verwendet kontrollierte 8-Byte-Nullschreibvorgänge, um UID/GID und den SELinux-Status zu ändern, ohne Capability-Bits auf 1 zu setzen. Validierungsumfang legt die Erfolgsbedingungen und Einschränkungen fest.
Installieren Sie unter Windows Android Platform Tools, Android NDK r29 (29.0.14206865) und r28.2 (28.2.13676358). Die Haupt-Payload wird statisch mit r29/API 35 gebaut; das generische order1-churn-Hilfsprogramm verwendet r28.2/API 35. Wenn das NDK in einem anderen Verzeichnis liegt, können -Ndk29 und -Ndk28 übergeben werden.
powershell -NoProfile -ExecutionPolicy Bypass -File .\build.ps1 -VerifyReference
-VerifyReference vergleicht die vier neu erstellten Artefakte per SHA-256 einzeln mit den Release-Binärdateien in bin/. Vollständige Hashes fixieren die Release-Version; der Build-Prozess stellt keine Verbindung zum Telefon her.
Verbinden Sie ein exakt passendes Zielgerät und autorisieren Sie es, und fügen Sie adb zum PATH hinzu:
powershell -NoProfile -ExecutionPolicy Bypass -File .\run_98260.ps1
Wenn mehrere ADB-Geräte vorhanden sind, übergeben Sie -Serial <Geräteseriennummer>. Das Skript prüft Geräte-Codename, vollständigen Fingerprint, Kernel, die vier lokalen und geräteseitigen Binär-Hashes sowie die Boot-ID und führt dann die SELinux- und UID/GID-Phasen getrennt aus. Erfolg wird erst gemeldet, wenn eine neue ADB-Sitzung UID 0 und Permissive bestätigt. Standardmäßig werden pro Phase bis zu drei Versuche unternommen; bei PARKED wird abgebrochen, und der gefährliche Zombie darf nicht manuell eingesammelt werden. Die Rohausgabe wird nur lokal in dem von Git ignorierten Verzeichnis logs/ gespeichert.
Nach Erfolg führen Sie im aktuellen Boot-Zyklus einen Befehl mit UID 0 aus:
adb shell /data/local/tmp/dada98260-su -c id
Die Ausnutzung hängt von probabilistischer Seitenrückgewinnung ab und trifft nicht bei jedem Versuch. Nach einem Neustart verschwinden die Speicheränderungen und der temporäre Dienst. Dieses Repository flasht keine Partitionen und beansprucht keine Unterstützung für andere Firmware oder für dieselbe Versionszeichenfolge mit einem anderen Kernel-Image.
Das Repository enthält nur den Quellcode für CVE-2026-98260, die reproduzierbaren geräteseitigen Programme und die aufbereiteten Erfolgsfakten. Original-Boot, Partitions-Images, Bugreports, Geräteseriennummern, Laufzeitadressen, Rohprotokolle und fehlgeschlagene Durchläufe wurden nicht hochgeladen. Der originäre Code und die Dokumentation dieses Projekts stehen unter der MIT-Lizenz; die Drittanbieter-Lizenzen des Android NDK, die für die vorkompilierten Binärdateien gelten, finden Sie in den Hinweisen.