
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 un clic sans déverrouillage du BL. 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 monte le module kernelsu dans le noyau en cours d'exécution via le mode late-load de KernelSU 3.3.0, en s'appuyant sur le 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) État : ✅ Root temporaire vérifié avec succès sur appareil réel
| Fichier | Rôle |
|---|---|
exploit | Binaire d'élévation de privilèges GhostLock (ARM64 PIE, non strip). Contient en interne la localisation par collision mm de KernelSnitch, le recouvrement de pile UAF futex PI, le root par ancre noyau, le daemon su, ainsi que libksud.so intégré et la logique de late-load KSU |
Root-K50G.bat | Script tout-en-un Windows (localise les fichiers depuis son propre répertoire, utilisable par double-clic) : 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 l'ancre noyau déjà root : libksud.so late-load --kmi 5.10.209-android12 charge KernelSU, 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 propriétés anti-falsification, redémarre netd, active wifi/données pour réparer la coupure réseau |
adb/ | Outils adb intégrés (portables, sans installation) |
adb驱动无需重启.exe | Outil d'installation en un clic des pilotes Xiaomi |
L'ensemble de la chaîne se divise en quatre étapes :
FUTEX_WAIT_REQUEUE_PI + FUTEX_CMP_REQUEUE_PI) créant un rt_mutex_waiter pendant sur la pile noyau ;rt_mutex_adjust_prio_chain pour le parcours, obtenant des primitives de lecture/écriture noyau contrôlées.cred (uid/gid=0, caps complets, SID noyau), obtenant un processus ancre root (anchor: ROOT uid=0 dans les journaux d'exécution) ;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 libksud.so late-load --kmi 5.10.209-android12 (sans flash/patcher l'image boot, correspondant exactement au KMI actuel de l'appareil) ;ksu_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 installé dans /data/adb/modules/ : son service s'exécute dans le domaine ksu (disposant de la 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 rejet AVC du socket su + la coupure réseau) ;ro.boot.flash.locked / verifiedbootstate / bit de garantie et redémarre netd, réparant le réseau après Root.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"
Vérification après l'exécution :
adb shell /data/local/tmp/su -c id
# uid=0(root) gid=0(root) ...
| Variable | Valeur par défaut | Signification |
|---|---|---|
NO_COLOR | 0 | Désactive les journaux colorés |
SE_LINUX | 0 | Active le basculement SELinux Permissive (écriture directe d'enforce via l'ancre noyau) |
KSU_LOADER | 0 | Exécute ksu_loader.sh dans l'ancre root (late-load de KernelSU) |
SHELL_ROOT | 0 | Fork d'un shell root dans l'ancre |
SU_DAEMON | 0 | Lance le daemon /data/local/tmp/su dans l'ancre |
SUSPECT_CPU | - | Spécifie le CPU suspect (liaison de l'ancre), 99999 indique automatique |
KS_MAX_TRIES | - | Limite d'essais de collision mm/ancre de KernelSnitch |
service.sh du module chuxin_permissive_netfix réinitialise automatiquement les propriétés et redémarre netd (efficace également après le flash de modules tels que LSPosed) ;Le contenu de ce dépôt est destiné uniquement à la recherche en sécurité et aux tests sur des appareils personnels. L'élévation de privilèges et la modification de l'état du système comportent certains risques ; une manipulation inappropriée peut rendre l'appareil inutilisable ou entraîner une perte de données. Veuillez l'utiliser en comprenant pleinement les principes et en assumant vous-même les conséquences, et 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, affectant les noyaux 2.6.39 ~ 7.1, permettant une élévation de privilèges locale.