
CVE-Forschung und Exploits, die dabei helfen, Root-Zugriff auf Pixel-Geräte zu erlangen
Roote ein Stock-Google-Pixel mit gesperrtem Bootloader aus einer unprivilegierten adb shell heraus, mithilfe einer
Kernel-CVE — kein Unlock, kein Flashen, keine Hilfe des Herstellers.
Ein aus dem Userspace erreichbarer Kernel-Bug liefert ein kurzlebiges Lese-/Schreib-Primitiv. Dieses Primitiv
wird dafür aufgewendet, ein KernelSU-Modul spät in den laufenden
GKI-Kernel zu laden,
wonach Root an den bereits installierten KernelSU-Manager übergeben wird.
Es wird keine Partition beschrieben, ein Neustart ist also die Deinstallation. Alles läuft vom Host über
adb durch eine einzige ausführbare Datei, ./pixel-ksu-root.
| CVE | der Bug | Stand der Dinge |
|---|---|---|
| CVE-2026-43499 — GhostLock | ein futex-PI-Walk folgt einem rt_mutex_waiter, den remove_waiter() baumelnd zurückgelassen hat, und liest aus einem Stack-Slot, den pselect(2) neu belegt hat | rootet, hardware-verifiziert; das default-Rezept, ein bloßer Lauf nimmt es also |
| CVE-2026-43049 — FFWheel | hidpp_probe() veröffentlicht das Eingabegerät vor der Force-Feedback-Initialisierung und gibt den Fehler zurück, ohne hid_hw_stop() aufzurufen, sodass ein freigegebenes struct uhid_device über /dev/input/eventN erreichbar bleibt | rootet, hardware-verifiziert; ein Use-after-free von einer unprivilegierten Shell zu beliebigem Kernel-Lesen/Schreiben, dann ein In-Place-Überschreiben des eigenen cred |
| CVE-2026-93189 — Joyride | hid_hw_stop() wartet nie darauf, dass die Eingabe stoppt, sodass eine fehlgeschlagene Probe das struct hidraw freigibt, in das hidraw_report_event() auf einem anderen Prozessor noch schreibt | Kandidat als Nachfolger; der Pfad zur Freigabe wird auf Hardware aus einer unprivilegierten Shell über /dev/uhid durchlaufen und ist auf Builds offen, die beide obigen Ketten schließen |
| CVE-2026-46242 — BadEpoll | __ep_remove() löscht file->f_ep und verwendet die Datei weiter, sodass ein gleichzeitiges __fput() das eventpoll freigibt, durch das es noch schreibt | teilweise; Lese- und Schreibkette laufen beide von Ende zu Ende, aber die Zustellung über die Slab-Grenze hinweg ist ungelöst |
| CVE-2026-56945 — RogueWave | bigo_iommu_fault_handler() durchläuft eine treiberglobale Instanzliste ohne Sperre, auf einer dokumentierten und falschen Annahme über seinen Aufrufer | ohne Privilegien über die öffentliche AMediaCodec-API erreichbar; der Fault-Handler selbst wurde noch nicht betreten |
| CVE-2026-56914 — DirtyDock | gcip_iommu_mapping_unmap_buffer() beschmutzt eine gepinnte DMA-Seite mit dem ungesperrten set_page_dirty() statt mit dessen sperrender Variante und rennt dabei mit dem Abbau des zugrunde liegenden Speichers | von Ende zu Ende auslösbar, obwohl der Geräteknoten privilegienbeschränkt ist; zwei Race-Strategien widerlegt, Timing noch nicht gewonnen |
| CVE-2026-64468 — Frostbind | binder_free_transaction() dereferenziert t->to_proc, ohne eine Referenz zu halten | Jagd; der verwundbare Lesevorgang läuft, aber das Race geht auf Bare Metal verloren |
| CVE-2026-64469 — Frostwalk | ein Geschwister von Frostbind in derselben Funktion: der ungesperrte Lesevorgang von binder_free_transaction() rennt mit binder_thread_release(), das den transaction_stack eines anderen Threads durchläuft | Jagd; Freigabe und Walk beide als erreichbar bestätigt, ohne Root-Abhängigkeit im Mechanismus — erreicht einen App-Prozess so wie Shizuku; ein Reclaim-Versuch ohne Verify-Read (Flood + Pin) steht noch aus — das eigentliche Ziel des Schreibvorgangs ist noch nicht unterschieden |
| CVE-2026-64560 — Zombietick | ein prozessweiter POSIX-CPU-Timer wird freigegeben, während er noch in der Warteschlange steht, weil posix_cpu_timer_del() früh zurückkehrt, sobald de_thread() ->sighand auf null gesetzt hat | Jagd; die KASLR-Stufe landet, der Bridge-Deskriptor validiert nie |
| CVE-2026-49881 — Telecom | Telecom vertraut einem vom Aufrufer gelieferten Komponentennamen und lädt ihn mit CONTEXT_INCLUDE_CODE, sodass eine Köder-App beliebigen Java-Code innerhalb von system_server ausführt | Forschung; ein Userspace-Domain-Pivot statt eines Kernel-Bugs, gepaart mit domainprobe/ |