
Escalation di privilegi in-memory nel kernel per Lenovo Legion Y700 2023 (TB320FC) che sfrutta CVE-2025-21479, una vulnerabilità SMMU della GPU Qualcomm Adreno, con gestione root ReSukiSU.
Italiano | 简体中文
Escalation dei privilegi del kernel in memoria per il Lenovo Legion Y700 2023 (TB320FC), sfruttando CVE-2025-21479 (vulnerabilità SMMU della GPU Qualcomm Adreno), con gestione completa del root fornita da ReSukiSU.
Nessuno sblocco del bootloader. Nessun flashing. Nessun PC richiesto per l'attivazione.
⚠️ Per ricerca di sicurezza autorizzata su dispositivi di tua proprietà. Vedi Disclaimer.
Tutti gli offset e i comportamenti in questo progetto sono calibrati per il seguente dispositivo. Non aspettarti che funzioni su altri modelli/ROM senza una nuova calibrazione (vedi exploit/device_info.txt).
| Modello | Lenovo Legion Y700 2023 (TB320FC) / TB320FC_PRC |
| SoC | Qualcomm SM8475 (Snapdragon 8+ Gen 1, Adreno 730) |
| Sistema | 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 |
| Patch di sicurezza | 2025-03-05 |
| Bootloader | Bloccato (questo progetto non lo sblocca) |
Verificato funzionante a partire da 2026-09 sul firmware sopra indicato.
| Capacità | Implementazione |
|---|---|
| Escalation dei privilegi | exploit cheese: bug KGSL SMMU → lettura/scrittura fisica arbitraria tramite GPU → root in memoria (uid 0 + caps complete) |
| Gestione del root | ReSukiSU (fork di KernelSU) in modalità late-load carica kernelsu.ko; su servito da un hook nel kernel (u:r:ksu:s0) |
| SELinux | Ripristinato su Enforcing dopo l'attivazione (le regole di policy di ReSukiSU restano applicate) |
| UX one-tap | APK RootActivator con exploit + ksud integrati; un singolo tap dopo il boot |
| Auto-recovery (opzionale) | Catena di auto-ripristino attivata al boot: trigger adattivo condizionato dal carico → cheese → pipeline root → hosts/Vector opzionali. Disattivato per impostazione predefinita (com.poc.roottool.CONFIG) |
| Moduli Xposed | Supportati tramite NeoZygisk (iniezione dello zygote via ptrace) + Vector |
| Persistenza | Nessuna per design (in memoria): riattivare dopo ogni riavvio (~3-4 min; oppure abilitare la catena di auto-recovery) |
| RootActivator (attivato) | ReSukiSU (funzionante, 2 moduli) |
|---|---|
![]() | ![]() |
A sinistra: RootActivator dopo l'attivazione riuscita — SELinux Enforcing, kernelsu caricato, su disponibile.
A destra: gestore ReSukiSU — modalità LKM funzionante con 2 moduli (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
Punti tecnici notevoli
insmod kernelsu.ko fallisce. Il late-load di ReSukiSU risolve i simboli autonomamente e si carica correttamente.Compila dal sorgente (vedi Building) oppure scarica l'APK dalla pagina GitHub Releases (non memorizzato nel repository).
Scarica da ReSukiSU Releases e installa l'APK del manager.
su -c 'sh /data/adb/modules/zygisksu/post-fs-data.sh'
Il repository contiene il PoC (l'exploit) e il suo activator one-tap. I livelli personalizzati del dispositivo (script di debloat, modulo privacy-hosts, strumenti per lo scope Xposed, helper di bring-up) sono mantenuti fuori dall'albero in un archivio privato separato — sono deliberatamente esclusi da questo repository. Dettagli: docs/ARCHITECTURE.md.