
Gerätespezifischer Linux-5.10-Kernel-Root-Exploit für Sharp AQUOS R7 (CVE-2026-43499), der temporär UID 0 mit SELinux permissive und einem su-Daemon gewährt.
Gerätespezifischer Linux-5.10-Port von GhostLock (CVE-2026-43499) für das Sharp
AQUOS R7. Das validierte Ziel ist das AQUOS R7 (Mineva, SGA202SH/A202SH)
mit Android 14 Build 03.00.06, Kernel
5.10.218-android12-9-00041-g124993efd06e-ab12385094 (SM8450).
Dies ist ein Port von aquos-r6-ghostlock
(AQUOS R6, Kernel 5.4.61-qgki). Jede Konstante — KASLR-Behandlung, das
selinux_state-Leak-Fenster, Task-/Cred-Offsets, die Zero-BSS-Scratch-Region —
wurde neu abgeleitet und gegen den R7-Kernel validiert; die R6-Stack-Geometrie
diente nur als Ausgangsreferenz.
Ein erfolgreicher Lauf verschafft UID 0 mit SELinux permissive und startet einen
kleinen su-Kommando-Daemon. Es wird kein vollständiger Linux-Capability-Satz
gewährt und die Änderung ist nicht persistent: Ein Neustart stellt den
Stock-Kernel-Zustand wieder her.
Der Android-NDK-clang mit Ziel aarch64-linux-android29 ist erforderlich (getestet
mit NDK r30):
make build/ghostlock510 # ~3.4 MB static binary
make strip # optional; ~0.6 MB, same behaviour
Reproduzierbarkeit: Dieser Quellcode ist, mit der obigen Toolchain gebaut,
byte-identisch (MD5 fa896ebd361519766b46cc2bab70dea2) mit dem in allen
Gerätetests verwendeten Binary. Das Release-Asset ist die llvm-strip-te Form
genau dieses Binaries (598.672 Bytes, SHA-256 d3056b65380da9fda68bc1891a08c6028ee1cbdb39ff2c3ca136b703f1b0bef7).
Das Binary (Release-Asset oder eigener Build) pushen und einmal ausführen:
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 &"
Den installierten su-Client für Root-Kommandos verwenden (vollständiger Pfad
erforderlich):
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 kommuniziert mit dem Daemon des Exploits über Loopback-TCP (Port 9999); es
wird keine persistente Root-Shell angehängt. Kommandos sind zeilenbasiert, und
das Verschachteln von su innerhalb von su funktioniert nicht. Interaktive
Programme (vi, top, …) benötigen ein PTY; ein interaktiver su-Modus auf Basis
des Daemons bleibt zukünftiger Arbeit überlassen.
Gemessen auf genau diesem Build (siehe VERIFICATION.md):
Also: Neustart, ghostlock510 einmal ausführen und nicht erneut ausführen,
solange diese Session lebt. Der Neustart ist der Bereinigungspfad.
Große externe Eingaben sind bewusst nicht in diesem Repository enthalten:
vmlinux/System.map des
Android-CI-Kernel-Builds 12385094 entnommen; die Byte-Identität mit dem
tatsächlich auf dem Gerät laufenden Kernel wurde über dessen boot_a-Image
verifiziert.--stamp3 / --use-setattr-Ansatz
wurde davon inspiriert (in jenem Repository ist keine Lizenz angegeben).