
Exploit de escalada de privilégios local para Redmi K50G/POCO F4 GT usando CVE-2026-43499 (futex UAF) para obter root temporário e carregar KernelSU sem desbloquear o bootloader.
Root temporário com um clique, sem desbloquear o bootloader. Utiliza a cadeia de escalonamento de privilégios local GhostLock (CVE-2026-43499, futex PI Use-After-Free) para obter uma âncora de root e, em seguida, monta o módulo kernelsu no kernel em execução através do método KernelSU 3.2.5 late-load, mantendo o SELinux Permissive e corrigindo a rede com módulos KSU.
Dispositivo alvo: Redmi K50G / POCO F4 GT — codinome
ingres, SoC SM8450 (Snapdragon 8 Gen 1) Sistema: Android 14, UKQ1.240624.001, kernel 5.10.209-android12 (KMIandroid12-5.10) Status: ✅ Root temporário verificado com sucesso em dispositivo real
| Arquivo | Função |
|---|---|
exploit | Binário de escalonamento GhostLock (ARM64 PIE, não stripado). Contém localização de colisão mm via KernelSnitch, sobrescrita de pilha futex PI UAF, root por âncora de kernel, daemon su, libksud.so embutido e lógica de late-load do KSU |
Root-K50G.bat | Script de um clique para Windows (localiza arquivos pelo próprio diretório, basta dar dois cliques): detecta dispositivo → envia arquivos → executa escalonamento → entra diretamente no shell root |
ksu_loader.sh | Executado pela âncora de root do kernel: carrega o KernelSU via libksud.so late-load --kmi 5.10.209-android12 e dispara sequencialmente as fases post-fs-data / services / boot-completed |
ksu-module/chuxin_permissive_netfix/ | Módulo KernelSU (module.prop + service.sh): monitora enforce=0 a cada 2 segundos, redefine atributos anti-adulteração, reinicia o netd e ativa wifi/dados para corrigir a perda de rede |
adb/ | Ferramentas adb integradas (portáteis, sem instalação) |
adb驱动无需重启.exe | Ferramenta de instalação de driver Xiaomi com um clique |
A cadeia completa tem quatro etapas:
FUTEX_WAIT_REQUEUE_PI + FUTEX_CMP_REQUEUE_PI) cria um rt_mutex_waiter pendurado na pilha do kernel;rt_mutex_adjust_prio_chain, obtendo primitivas controladas de leitura/escrita no kernel.cred via primitiva de escrita (uid/gid=0, caps completos, SID do kernel), obtendo um processo âncora de root (anchor: ROOT uid=0 nos logs);SHELL_ROOT=1) e daemon su (SU_DAEMON=1, /data/local/tmp/su).kernelsu.ko é carregado no kernel em execução via (sem necessidade de flashar/patchar a imagem boot, com correspondência exata ao KMI atual do dispositivo);Root-K50G.bat;id para verificar 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"
Após a execução, verifique:
adb shell /data/local/tmp/su -c id
# uid=0(root) gid=0(root) ...
service.sh do módulo chuxin_permissive_netfix redefine automaticamente os atributos e reinicia o netd (também funciona após instalar módulos como LSPosed);O conteúdo deste repositório destina-se exclusivamente a pesquisa de segurança e testes em dispositivos próprios. Escalonamento de privilégios/modificação do estado do sistema envolvem riscos; operação inadequada pode causar brick no dispositivo ou perda de dados. Use somente após compreender totalmente os princípios e assumindo as consequências por conta própria; não use para fins ilegais.
Referência: CVE-2026-43499 (GhostLock) — UAF de herança de prioridade futex no kernel Linux, afeta kernels 2.6.39 ~ 7.1, permite escalonamento local de privilégios.
libksud.so late-load --kmi 5.10.209-android12ksu_loader.sh executa sequencialmente post-fs-data, services e boot-completed, permitindo que o framework de gerenciamento do KernelSU (ksud) seja iniciado normalmente.chuxin_permissive_netfix é instalado em /data/adb/modules/: seu service roda no domínio ksu (com permissão security:setenforce) e reescreve enforce para 0 a cada 2 segundos, anulando o comportamento do ksud de reverter o SELinux para Enforcing após boot-completed (evita AVC que bloqueia o socket su + perda de rede);ro.boot.flash.locked / verifiedbootstate / atributos de garantia e reinicia o netd, corrigindo a rede após o Root.| Variável | Padrão | Significado |
|---|
NO_COLOR | 0 | Desativa logs coloridos |
SE_LINUX | 0 | Ativa o flip do SELinux Permissive (escrita direta de enforce pela âncora de kernel) |
KSU_LOADER | 0 | Executa ksu_loader.sh dentro da âncora de root (KernelSU late-load) |
SHELL_ROOT | 0 | Fork de root shell dentro da âncora |
SU_DAEMON | 0 | Inicia o daemon /data/local/tmp/su dentro da âncora |
SUSPECT_CPU | - | Especifica a CPU suspeita (vínculo da âncora); 99999 = automático |
KS_MAX_TRIES | - | Limite de tentativas de colisão mm / âncora do KernelSnitch |