
Recherche de CVE et exploits pour aider à obtenir les droits root sur les appareils Pixel
Rootez un Google Pixel d'origine à bootloader verrouillé depuis un adb shell non privilégié, en exploitant une
CVE du noyau — sans déverrouillage, sans flash, sans aide du constructeur.
Un bug du noyau accessible depuis l'espace utilisateur fournit une primitive de lecture/écriture de courte durée. Cette primitive
est utilisée pour charger tardivement un module KernelSU dans le noyau
GKI
en cours d'exécution, après quoi le root est transmis au gestionnaire KernelSU déjà installé.
Aucune partition n'est écrite, donc un redémarrage équivaut à la désinstallation. Tout s'exécute depuis l'hôte via
adb à travers un seul exécutable, ./pixel-ksu-root.
| CVE | le bug | où il en est |
|---|---|---|
| CVE-2026-43499 — GhostLock | un parcours PI de futex suit un rt_mutex_waiter que remove_waiter() a laissé pendouiller, lu depuis un emplacement de pile que pselect(2) a réoccupé | root obtenu, vérifié sur matériel ; la recette default, donc une exécution nue le prend |
| CVE-2026-43049 — FFWheel | hidpp_probe() publie le périphérique d'entrée avant l'initialisation du retour de force et retourne l'erreur sans hid_hw_stop(), donc un struct uhid_device libéré reste accessible via /dev/input/eventN | root obtenu, vérifié sur matériel ; un use-after-free depuis un shell non privilégié vers une lecture/écriture arbitraire du noyau, puis un écrasement de son propre cred sur place |
| CVE-2026-93189 — Joyride | hid_hw_stop() n'attend jamais l'arrêt de l'entrée, donc une sonde échouée libère le struct hidraw dans lequel hidraw_report_event() écrit encore sur un autre processeur | successeur candidat ; le chemin vers la libération est parcouru sur matériel depuis un shell non privilégié via /dev/uhid, et est ouvert sur les builds qui ferment les deux chaînes ci-dessus |
| CVE-2026-46242 — BadEpoll | __ep_remove() efface file->f_ep et continue d'utiliser le fichier, donc un __fput() concurrent libère l'eventpoll à travers lequel il écrit encore | partiel ; les chaînes de lecture et d'écriture s'exécutent toutes deux de bout en bout, mais la livraison à travers la frontière de slab n'est pas résolue |
| CVE-2026-56945 — RogueWave | bigo_iommu_fault_handler() parcourt une liste d'instances globale au pilote sans verrou, sur une hypothèse documentée et incorrecte concernant son appelant | accessible sans privilège via l'API publique AMediaCodec ; le gestionnaire de faute lui-même n'a pas été atteint |
| CVE-2026-56914 — DirtyDock | gcip_iommu_mapping_unmap_buffer() salit une page DMA épinglée avec le set_page_dirty() non verrouillé au lieu de sa variante verrouillante, en course avec le démontage de la mémoire sous-jacente | déclenchable de bout en bout, bien que le nœud de périphérique soit soumis à privilège ; deux stratégies de course réfutées, le timing pas encore gagné |
| CVE-2026-64468 — Frostbind | binder_free_transaction() déréférence t->to_proc sans détenir de référence | chasse ; la lecture vulnérable s'exécute, mais la course est perdue sur métal nu |
| CVE-2026-64469 — Frostwalk | un frère de Frostbind, dans la même fonction : la lecture non verrouillée de binder_free_transaction() est en course avec binder_thread_release() parcourant le transaction_stack d'un autre thread | chasse ; libération et parcours tous deux confirmés accessibles, sans dépendance au root dans le mécanisme — atteint un processus d'application comme le fait Shizuku ; une tentative de récupération sans lecture de vérification (flood + pin) n'a pas encore abouti — la cible réelle de l'écriture n'est toujours pas distinguée |
| CVE-2026-64560 — Zombietick | un minuteur CPU POSIX à l'échelle du processus est libéré alors qu'il est encore en file, car posix_cpu_timer_del() retourne tôt une fois que de_thread() a mis ->sighand à null | chasse ; l'étape KASLR aboutit, le descripteur de pont ne valide jamais |
| CVE-2026-49881 — Telecom | Telecom fait confiance à un nom de composant fourni par l'appelant et le charge avec CONTEXT_INCLUDE_CODE, donc une application appât exécute du Java arbitraire dans system_server | recherche ; un pivot de domaine en espace utilisateur plutôt qu'un bug du noyau, associé à domainprobe/ |