
Exploit di escalation dei privilegi locali per Redmi K50G/POCO F4 GT che utilizza CVE-2026-43499 (futex UAF) per ottenere root temporaneo e caricare KernelSU senza sbloccare il bootloader.
Root temporaneo con un clic senza sbloccare il bootloader. Sfrutta la catena di escalation locale GhostLock (CVE-2026-43499, futex PI Use-After-Free) per ottenere un ancoraggio root, quindi carica il modulo kernelsu nel kernel in esecuzione tramite KernelSU 3.2.5 late-load, mantenendo SELinux Permissive e riparando la rete con i moduli KSU.
Dispositivo target: Redmi K50G / POCO F4 GT — nome in codice
ingres, SoC SM8450 (Snapdragon 8 Gen 1) Sistema: Android 14, UKQ1.240624.001, kernel 5.10.209-android12 (KMIandroid12-5.10) Stato: ✅ Root temporaneo verificato su dispositivo reale
| File | Funzione |
|---|---|
exploit | Binario di escalation GhostLock (ARM64 PIE, non strippato). Include collisione mm di KernelSnitch, overwrite dello stack per futex PI UAF, ancoraggio root nel kernel, su daemon, libksud.so incorporato e logica KSU late-load |
Root-K50G.bat | Script Windows con un clic (individua i file dalla propria directory, doppio clic per usare): rileva il dispositivo → invia i file → esegue l'escalation → entra direttamente in root shell |
ksu_loader.sh | Eseguito dall'ancoraggio root nel kernel: carica KernelSU con libksud.so late-load --kmi 5.10.209-android12 e attiva in sequenza le fasi post-fs-data / services / boot-completed |
ksu-module/chuxin_permissive_netfix/ | Modulo KernelSU (module.prop + service.sh): ogni 2 secondi controlla enforce=0, resetta gli attributi anti-tamper, riavvia netd, attiva wifi/dati per riparare la rete |
adb/ | Strumenti adb integrati (portatili, senza installazione) |
adb驱动无需重启.exe | Strumento di installazione driver Xiaomi con un clic |
L'intera catena si compone di quattro passaggi:
FUTEX_WAIT_REQUEUE_PI + FUTEX_CMP_REQUEUE_PI) per creare un rt_mutex_waiter pendente sullo stack del kernel;rt_mutex_adjust_prio_chain, ottenendo primitive controllate di lettura/scrittura nel kernel.cred (uid/gid=0, caps complete, SID kernel), ottenendo un processo ancoraggio root (anchor: ROOT uid=0 nei log);SHELL_ROOT=1) e su daemon (SU_DAEMON=1, /data/local/tmp/su).kernelsu.ko viene caricato nel kernel in esecuzione tramite (senza flashare/patchare l'immagine boot, corrispondenza esatta con il KMI corrente del dispositivo);Root-K50G.bat;id per verificare 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"
Al termine, verifica:
adb shell /data/local/tmp/su -c id
# uid=0(root) gid=0(root) ...
service.sh del modulo chuxin_permissive_netfix resetta automaticamente gli attributi e riavvia netd (funziona anche dopo il flash di moduli come LSPosed);Il contenuto di questo repository è destinato esclusivamente a ricerca sulla sicurezza e test su dispositivi personali. L'escalation dei privilegi e la modifica dello stato di sistema comportano alcuni rischi; un uso improprio può causare il brick del dispositivo o la perdita di dati. Utilizzare solo dopo aver compreso appieno i principi e assumendosi le proprie responsabilità; non utilizzare per scopi illegali.
Riferimento: CVE-2026-43499 (GhostLock) — UAF nell'ereditarietà di priorità futex del kernel Linux, impatta i kernel 2.6.39 ~ 7.1, consente escalation locale dei privilegi.
libksud.so late-load --kmi 5.10.209-android12ksu_loader.sh esegue in sequenza post-fs-data, services, boot-completed, consentendo al framework di gestione KernelSU (ksud) di avviarsi correttamente.chuxin_permissive_netfix viene caricato in /data/adb/modules/: il suo service gira nel dominio ksu (con permesso security:setenforce), riscrive enforce a 0 ogni 2 secondi, contrastando il comportamento di ksud che riporta SELinux a Enforcing dopo boot-completed (previene AVC che nega il socket su + perdita di rete);ro.boot.flash.locked / verifiedbootstate / gli attributi di garanzia e riavvia netd, riparando la rete dopo il Root.| Variabile | Default | Significato |
|---|
NO_COLOR | 0 | Disattiva i log colorati |
SE_LINUX | 0 | Abilita il flip SELinux Permissive (scrittura diretta di enforce dall'ancoraggio kernel) |
KSU_LOADER | 0 | Esegue ksu_loader.sh nell'ancoraggio root (KernelSU late-load) |
SHELL_ROOT | 0 | Fork di root shell nell'ancoraggio |
SU_DAEMON | 0 | Avvia il daemon /data/local/tmp/su nell'ancoraggio |
SUSPECT_CPU | - | Specifica la CPU sospetta (binding ancoraggio), 99999 = automatico |
KS_MAX_TRIES | - | Limite massimo di tentativi per collisione mm KernelSnitch / ancoraggio |