
Exploit d'élévation de privilèges locale pour Redmi K50G/POCO F4 GT utilisant CVE-2026-43499 (futex UAF) pour obtenir un accès root temporaire et charger KernelSU sans déverrouiller le bootloader.
Root temporaire en une commande sans déverrouillage du bootloader. Exploite la chaîne d'élévation de privilèges locale GhostLock (CVE-2026-43499, futex PI Use-After-Free) pour obtenir un point d'ancrage root, puis charge le module kernelsu dans le noyau en cours d'exécution via KernelSU 3.2.5 late-load, avec un module KSU pour maintenir SELinux Permissive et réparer le réseau.
Appareil cible : Redmi K50G / POCO F4 GT — nom de code
ingres, SoC SM8450 (Snapdragon 8 Gen 1) Système : Android 14, UKQ1.240624.001, noyau 5.10.209-android12 (KMIandroid12-5.10) Statut : ✅ Root temporaire vérifié sur appareil réel
| Fichier | Rôle |
|---|---|
exploit | Binaire d'élévation GhostLock (ARM64 PIE, non strippé). Contient la localisation de collision mm KernelSnitch, l'écrasement de pile futex PI UAF, le root par point d'ancrage noyau, le daemon su, libksud.so intégré et la logique KSU late-load |
Root-K50G.bat | Script Windows en une commande (localise les fichiers depuis son propre répertoire, double-clic pour utiliser) : détection de l'appareil → envoi des fichiers → exécution de l'élévation → accès direct au shell root |
ksu_loader.sh | Exécuté par le point d'ancrage root : charge KernelSU via libksud.so late-load --kmi 5.10.209-android12, puis déclenche successivement les phases post-fs-data / services / boot-completed |
ksu-module/chuxin_permissive_netfix/ | Module KernelSU (module.prop + service.sh) : surveille enforce=0 toutes les 2 secondes, réinitialise les attributs anti-altération, redémarre netd, active wifi/données pour réparer la perte de réseau |
adb/ | Outils adb intégrés (portables, sans installation) |
adb驱动无需重启.exe | Outil d'installation en une commande des pilotes Xiaomi |
La chaîne complète se déroule en quatre étapes :
FUTEX_WAIT_REQUEUE_PI + FUTEX_CMP_REQUEUE_PI) pour créer un rt_mutex_waiter pendant sur la pile du noyau ;rt_mutex_adjust_prio_chain, obtenant des primitives de lecture/écriture noyau contrôlées.cred via la primitive d'écriture (uid/gid=0, caps complètes, SID noyau), obtenant un processus point d'ancrage root (anchor: ROOT uid=0 dans les journaux) ;SHELL_ROOT=1) et daemon su (SU_DAEMON=1, /data/local/tmp/su).kernelsu.ko est chargé dans le noyau en cours d'exécution via (sans flashage ni patch de l'image boot, correspondance exacte avec le KMI actuel de l'appareil) ;Root-K50G.bat ;id pour vérifier uid=0(root) ;/data/local/tmp/su -c id.adb push exploit /data/local/tmp/exploit
adb push ksu_loader.sh /data/local/tmp/ksu_loader.sh
adb shell chmod 755 /data/local/tmp/exploit /data/local/tmp/ksu_loader.sh
adb shell "env NO_COLOR=1 SE_LINUX=1 KSU_LOADER=1 SHELL_ROOT=1 SU_DAEMON=1 SUSPECT_CPU=99999 KS_MAX_TRIES=8 /data/local/tmp/exploit"
Après l'exécution, vérifiez :
adb shell /data/local/tmp/su -c id
# uid=0(root) gid=0(root) ...
service.sh du module chuxin_permissive_netfix réinitialise automatiquement les attributs et redémarre netd (fonctionne aussi après flashage de modules comme LSPosed) ;Le contenu de ce dépôt est destiné uniquement à la recherche en sécurité et aux tests sur appareils personnels. L'élévation de privilèges / la modification de l'état du système comportent certains risques ; une mauvaise manipulation peut rendre l'appareil inutilisable ou entraîner une perte de données. Utilisez-le uniquement si vous comprenez parfaitement le principe et assumez vous-même les conséquences ; ne l'utilisez pas à des fins illégales.
Référence : CVE-2026-43499 (GhostLock) — UAF d'héritage de priorité futex du noyau Linux, affecte les noyaux 2.6.39 ~ 7.1, permet une élévation de privilèges locale.
libksud.so late-load --kmi 5.10.209-android12ksu_loader.sh exécute successivement post-fs-data, services, boot-completed, permettant au framework de gestion KernelSU (ksud) de démarrer normalement.chuxin_permissive_netfix est chargé dans /data/adb/modules/ : son service s'exécute dans le domaine ksu (avec permission security:setenforce), réécrit enforce à 0 toutes les 2 secondes, contrant le comportement de ksud qui repasse SELinux en Enforcing après boot-completed (évite le refus AVC du socket su + la perte de réseau) ;ro.boot.flash.locked / verifiedbootstate / les propriétés de garantie et redémarre netd, réparant le réseau après Root.| Variable | Défaut | Signification |
|---|
NO_COLOR | 0 | Désactive les journaux colorés |
SE_LINUX | 0 | Active le basculement SELinux Permissive (écriture directe de enforce par le point d'ancrage noyau) |
KSU_LOADER | 0 | Exécute ksu_loader.sh dans le point d'ancrage root (KernelSU late-load) |
SHELL_ROOT | 0 | Fork d'un shell root dans le point d'ancrage |
SU_DAEMON | 0 | Démarre le daemon /data/local/tmp/su dans le point d'ancrage |
SUSPECT_CPU | - | Spécifie le CPU suspect (liaison du point d'ancrage), 99999 = automatique |
KS_MAX_TRIES | - | Limite maximale de tentatives de collision mm / point d'ancrage KernelSnitch |