
Exploit root per il kernel Linux 5.10 specifico per il dispositivo Sharp AQUOS R7 (CVE-2026-43499), che concede UID 0 temporaneo con SELinux permissivo e un demone su.
Porting Linux 5.10 specifico per dispositivo di GhostLock (CVE-2026-43499) per lo Sharp
AQUOS R7. Il target validato è l'AQUOS R7 (Mineva, SGA202SH/A202SH)
con Android 14 build 03.00.06, kernel
5.10.218-android12-9-00041-g124993efd06e-ab12385094 (SM8450).
Questo è un porting di aquos-r6-ghostlock
(AQUOS R6, kernel 5.4.61-qgki). Ogni costante — la gestione di KASLR, la
finestra di leak di selinux_state, gli offset task/cred, la regione scratch
zero-BSS — è stata nuovamente derivata e validata rispetto al kernel R7; la
geometria dello stack dell'R6 è servita solo come riferimento iniziale.
Un'esecuzione riuscita fornisce UID 0 con SELinux permissive e avvia un piccolo
demone del comando su. Non concede un set completo di capability Linux e la
modifica non è persistente: un riavvio ripristina lo stato del kernel originale.
È richiesto clang dell'Android NDK con target aarch64-linux-android29 (testato
con NDK r30):
make build/ghostlock510 # ~3.4 MB static binary
make strip # optional; ~0.6 MB, same behaviour
Riproducibilità: questo sorgente, compilato con il toolchain sopra, è byte-identico
(MD5 fa896ebd361519766b46cc2bab70dea2) al binario usato in tutti i test
sul dispositivo. L'asset di release è la forma llvm-strip-ata di esattamente quel binario
(598.672 byte, SHA-256 d3056b65380da9fda68bc1891a08c6028ee1cbdb39ff2c3ca136b703f1b0bef7).
Invia il binario (asset di release o una tua build) ed eseguilo una volta:
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 &"
Usa il client su installato per i comandi root (è richiesto il percorso completo):
adb shell "/data/local/tmp/su -c 'id; getenforce'"
# uid=0(root) gid=2000(shell) groups=2000(shell) context=u:r:kernel:s0
# Permissive
su comunica con il demone dell'exploit tramite TCP su loopback (porta 9999); non
viene collegata alcuna shell root persistente. I comandi sono basati su righe e annidare su
dentro su non funziona. I programmi interattivi (vi, top, …) richiedono un PTY; una
modalità su interattiva sopra il demone è lasciata come lavoro futuro.
Misurato su questa esatta build (vedi VERIFICATION.md):
Quindi: riavvia, esegui ghostlock510 una volta, e non eseguirlo di nuovo mentre quella
sessione è attiva. Il riavvio è il percorso di pulizia.
Grandi input esterni sono deliberatamente non inclusi in questo repository:
vmlinux/System.map della
build del kernel Android CI 12385094; l'identità a livello di byte con il kernel
effettivamente in esecuzione sul dispositivo è stata verificata tramite la sua immagine boot_a.--stamp3 / --use-setattr
è stato ispirato da esso (nessuna licenza indicata in quel repository).