
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.
Port Linux 5.10 specifico per il 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.11, kernel
5.10.237-android12-9-00013-gd09ef2e980e0-ab13968955 (SM8450).
Il precedente target validato, build 03.00.06 / kernel
5.10.218-android12-9-00041-g124993efd06e-ab12385094, è conservato nel
tag git v1.0-030006.
Questo è un port di aquos-r6-ghostlock
(AQUOS R6, kernel 5.4.61-qgki). Ogni costante — gestione 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 dell'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 il 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à (calibrazione 03.00.11): questa sorgente, compilata con la toolchain
sopra, è identica byte per byte (MD5 25fc1d5d0e92d36c56f00f983a49667d) al
binario utilizzato nel test 03.00.11 sul dispositivo. L'asset della release è la
forma llvm-strip-ed esattamente di quel binario (598.672 byte, SHA-256
5c413a80e9fcc41032412f4e0e5183bc723dde9a2e0ace5a6d9c79681b04b9cd).
Per la build 03.00.06 vedere il tag v1.0-030006 (MD5 non strippato
fa896ebd361519766b46cc2bab70dea2).
Trasferire il binario (asset della release o una propria build) ed eseguirlo 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 (percorso completo richiesto):
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 daemon dell'exploit tramite TCP su loopback (porta 9999); non viene collegata alcuna shell root persistente. I comandi sono basati su righe e l'annidamento di su dentro su non funziona. I programmi interattivi (vi, top, …) richiedono un PTY; una modalità su interattiva sopra il daemon è lasciata come lavoro futuro.
Misurato su questa esatta build (vedi VERIFICATION.md):
Quindi: riavvia, esegui ghostlock510 una volta e non eseguirlo di nuovo finché quella sessione è attiva. Il riavvio è il percorso di pulizia.
Input esterni di grandi dimensioni sono deliberatamente esclusi da questo repository:
vmlinux/System.map della build del kernel Android CI 13968955; l'identità a livello di byte con il kernel effettivamente in esecuzione sul dispositivo è stata verificata tramite la sua immagine boot_b (tutti i 23 segmenti PT_LOAD, confronto per segmento). La correzione della CVE (backport 5.10.y del 2026-07-21) è successiva a questo albero (HEAD 2025-08-20), e kernel/futex/core.c è identico a livello di blob alla build 03.00.06 — la vulnerabilità è ancora presente.v1.0-030006): gli offset provengono dalla build del kernel Android CI 12385094, verificata a livello di byte tramite l'immagine boot_a del dispositivo.--stamp3 / --use-setattr è stato ispirato da esso (nessuna licenza indicata in quel repository).