
Эксплойт для получения root-прав в ядре Linux 5.10, специфичный для устройства Sharp AQUOS R7 (CVE-2026-43499), предоставляющий временный UID 0 с SELinux в режиме permissive и демон su.
Порт GhostLock (CVE-2026-43499) для Linux 5.10 под конкретное устройство — Sharp
AQUOS R7. Проверенная целевая платформа — AQUOS R7 (Mineva, SGA202SH/A202SH)
под управлением Android 14 сборки 03.00.11, ядро
5.10.237-android12-9-00013-gd09ef2e980e0-ab13968955 (SM8450).
Предыдущая проверенная целевая платформа — сборка 03.00.06 / ядро
5.10.218-android12-9-00041-g124993efd06e-ab12385094 — сохранена в
git-теге v1.0-030006.
Это порт aquos-r6-ghostlock
(AQUOS R6, ядро 5.4.61-qgki). Каждая константа — обработка KASLR,
окно утечки selinux_state, смещения task/cred, область скретча в нулевом
BSS — была заново выведена и проверена на ядре R7; геометрия стека R6
служила лишь отправной точкой.
Успешный запуск даёт UID 0 с SELinux в режиме permissive и запускает небольшой
демон команды su. Он не предоставляет полный набор возможностей Linux, и
изменение не является постоянным: перезагрузка восстанавливает исходное состояние ядра.
Требуется clang из Android NDK с целью aarch64-linux-android29 (проверено
с NDK r30):
make build/ghostlock510 # ~3.4 MB static binary
make strip # optional; ~0.6 MB, same behaviour
Воспроизводимость (калибровка 03.00.11): этот исходный код, собранный с помощью
указанного выше инструментария, побайтово идентичен (MD5 25fc1d5d0e92d36c56f00f983a49667d)
бинарному файлу, использованному в тесте 03.00.11 на устройстве. Релизный артефакт — это
форма именно этого бинарного файла, обработанная llvm-strip (598 672 байта, SHA-256
5c413a80e9fcc41032412f4e0e5183bc723dde9a2e0ace5a6d9c79681b04b9cd).
Для сборки 03.00.06 см. тег v1.0-030006 (необработанный MD5
fa896ebd361519766b46cc2bab70dea2).
Загрузите бинарный файл (релизный артефакт или собственную сборку) и запустите его один раз:
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 &"
Используйте установленный клиент su для команд root (требуется полный путь):
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 взаимодействует с демоном эксплойта через loopback TCP (порт 9999); постоянная root-оболочка не прикрепляется. Команды построчные, и вложенный su внутри su не работает. Интерактивные программы (vi, top, …) требуют PTY; интерактивный режим su поверх демона оставлен на будущее.
Измерено на этой самой сборке (см. VERIFICATION.md):
Итак: перезагрузите, запустите ghostlock510 один раз и не запускайте его снова, пока эта
сессия жива. Перезагрузка — это путь очистки.
Крупные внешние входные данные намеренно не включены в этот репозиторий:
vmlinux/System.map сборки ядра Android CI 13968955; побайтовая
идентичность с ядром, фактически работающим на устройстве, была проверена через
его образ boot_b (все 23 сегмента PT_LOAD, посгментное сравнение).
Исправление CVE (бэкпорт 5.10.y от 2026-07-21) появилось позже этого дерева
(HEAD 2025-08-20), а kernel/futex/core.c побайтово идентичен
сборке 03.00.06 — уязвимость всё ещё присутствует.v1.0-030006): смещения взяты из сборки ядра Android CI
12385094, побайтово проверены через образ boot_a устройства.--stamp3 / --use-setattr
был вдохновлён им (лицензия в том репозитории не указана).