
In-Memory-Kernel-Privilegieneskalation für Lenovo Legion Y700 2023 (TB320FC) unter Ausnutzung von CVE-2025-21479, einer Qualcomm Adreno GPU SMMU-Schwachstelle, mit ReSukiSU-Root-Verwaltung.
English | 简体中文
In-Memory-Kernel-Privilegieneskalation für das Lenovo Legion Y700 2023 (TB320FC), unter Ausnutzung von CVE-2025-21479 (Qualcomm Adreno GPU SMMU-Schwachstelle), mit vollständiger Root-Verwaltung durch ReSukiSU.
Kein Bootloader-Unlock. Kein Flashen. Kein PC erforderlich für die Aktivierung.
⚠️ Für autorisierte Sicherheitsforschung an Geräten, die Ihnen gehören. Siehe Haftungsausschluss.
Alle Offsets und Verhaltensweisen in diesem Projekt sind auf das folgende Gerät abgestimmt. Erwarten Sie nicht, dass es ohne erneute Anpassung auf anderen Modellen/ROMs funktioniert (siehe exploit/device_info.txt).
| Modell | Lenovo Legion Y700 2023 (TB320FC) / TB320FC_PRC |
| SoC | Qualcomm SM8475 (Snapdragon 8+ Gen 1, Adreno 730) |
| System | ZUXOS 1.1.350 / Android 15 (SDK 35) |
| Build | AQ3A.240812.002 (TB320FC_CN_OPEN_USER_Q00031.0_V_ZUXOS_1.1.350_ST_250418) |
| Kernel | 5.10.209-android12-9-gef44381c3e04-ab50 |
| Sicherheits-Patch | 2025-03-05 |
| Bootloader | Gesperrt (dieses Projekt entsperrt ihn nicht) |
Verifiziert funktionsfähig ab 2026-09 auf der oben genannten Firmware.
| Fähigkeit | Implementierung |
|---|---|
| Privilegieneskalation | cheese-Exploit: KGSL-SMMU-Bug → beliebiges physisches Lesen/Schreiben über GPU → In-Memory-Root (uid 0 + volle Caps) |
| Root-Verwaltung | ReSukiSU (KernelSU-Fork) lädt im Late-Load-Modus kernelsu.ko; su wird durch einen In-Kernel-Hook (u:r:ksu:s0) bereitgestellt |
| SELinux | Nach der Aktivierung auf Enforcing zurückgesetzt (ReSukiSU-Richtlinienregeln bleiben angewendet) |
| One-Tap-UX | RootActivator-APK mit eingebettetem Exploit + ksud; ein einziger Tipp nach dem Booten |
| Auto-Recovery (optional) | Boot-ausgelöste Selbstheilungskette: adaptiver load-gated Trigger → cheese → Root-Pipeline → optional hosts/Vector. Standardmäßig deaktiviert (com.poc.roottool.CONFIG) |
| Xposed-Module | Unterstützt über NeoZygisk (ptrace-Zygote-Injection) + Vector |
| Persistenz | Konstruktionsbedingt keine (In-Memory): nach jedem Neustart erneut aktivieren (~3-4 Min.; oder die Auto-Recovery-Kette aktivieren) |
| RootActivator (aktiviert) | ReSukiSU (funktionsfähig, 2 Module) |
|---|---|
![]() | ![]() |
Links: RootActivator nach erfolgreicher Aktivierung — SELinux Enforcing, kernelsu geladen, su verfügbar.
Rechts: ReSukiSU-Manager — LKM-Modus funktionsfähig mit 2 Modulen (NeoZygisk + Vector).
RootActivator APK
│
├─ libcheese.so ── KGSL SMMU exploit (CVE-2025-21479)
│ 1. Adreno 730 microcode access-check flaw (SDS packet mistaken for RingBuffer)
│ 2. Fake CP_SMMU_TABLE_UPDATE overwrites GPU TTBR0 → arbitrary physical R/W
│ 3. Zero selinux_state.enforcing; dump kernel from fixed PA 0xA8000000,
│ parse kallsyms from the raw image (SM8475 has no physical KASLR)
│ 4. Patch __do_sys_capset with an escalation shellcode
│ (prepare_kernel_cred(0) + commit_creds + clear TIF_SECCOMP);
│ forked child calls capset() → uid 0 + full caps
│
└─ libksud.so (ReSukiSU) ── late-load mode
1. kernelsu.ko loaded from ksud's embedded assets with manual relocation
(does not rely on kernel symbol exports)
2. install → /data/adb/ksu (ksud/busybox/bootctl)
3. su channel online: /system/bin/su → kernel hook redirect → u:r:ksu:s0
4. setenforce 1 — Enforcing restored, policy rules already injected by the ko
Bemerkenswerte technische Aspekte
insmod kernelsu.ko fehlschlägt. Der Late-Load von ReSukiSU löst Symbole selbst auf und lädt problemlos.Aus dem Quellcode bauen (siehe Building) oder die APK von der GitHub-Releases-Seite herunterladen (nicht im Repo gespeichert).
Von ReSukiSU Releases herunterladen und die Manager-APK installieren.
su -c 'sh /data/adb/modules/zygisksu/post-fs-data.sh'
Das Repo enthält den PoC (den Exploit) und seinen Ein-Klick-Aktivator. Die benutzerdefinierten Geräteebenen (Debloat-Skripte, Privacy-Hosts-Modul, Xposed-Scope-Tooling, Bring-up-Helfer) werden außerhalb des Trees in einem separaten privaten Archiv gehalten — sie sind bewusst nicht Teil dieses Repositories. Details: docs/ARCHITECTURE.md.