Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
cve-2026-43499-aak-an00 — Honor WIN RT (AAK-AN00) CVE-2026-43499 root temporaneo - note di ricerca | Kitploit
Strumenti/GitHubGitHub/hui191/cve-2026-43499-aak-an00
Sicurezza AndroidEscalation di PrivilegiAnalisi delle VulnerabilitàExploitReverse EngineeringPost-ExploitSicurezza MobilePaper e RicercaBinary Exploitation
GitHubhui191/cve-2026-43499-aak-an00

cve-2026-43499-aak-an00

Honor WIN RT (AAK-AN00) CVE-2026-43499 root temporaneo - note di ricerca

4 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository

CVE-2026-43499 · Honor WIN RT (AAK-AN00) Note di ricerca sul Root temporaneo

(scritto interamente da deepseek, io non capisco nulla)

Bootloader del dispositivo bloccato permanentemente (ro.oem_unlock.supported vuoto), niente fastboot, niente su persistente, niente Magisk. L'unica strada ancora percorribile è una vulnerabilità del kernel. Questo repository documenta l'intero processo da "si può colpire?" a "quanto è stabile dopo il colpo?".

Natura: root temporaneo, si perde al riavvio.


Disclaimer

Questo repository documenta un processo di ricerca sulla sicurezza condotto su un dispositivo di mia proprietà, con l'obiettivo di comprendere le cause e i limiti di stabilità di una race condition PI del kernel.

  • Non contiene alcun binario exploit né payload di sfruttamento direttamente eseguibile — payload e framework provengono da progetti pubblici upstream; questo repository si limita a citarli, senza ridistribuirli.
  • Non fornisce tutorial su metodi di bypass per alcun produttore specifico, né incoraggia l'uso su dispositivi non autorizzati.
  • Gli offset e gli indirizzi dei simboli presenti nel repository sono validi solo per l'unico build del kernel elencato in questo documento; cambiando kernel diventano tutti invalidi.
  • I difetti in questione sono già stati corretti upstream (vedi sotto). Il valore a lungo termine di questo documento risiede in "questa documentazione stessa" — un resoconto reale di una vulnerabilità di race condition in condizioni non ideali, inclusi tutti i suoi effetti collaterali scomodi.

0. Conclusione in una riga

L'unico percorso portato a termine è:

root@kitploit:~
CVE-2026-43499 (race condition futex PI write-what-where) + carrier rt_sigreturn
  → iniezione LD_PRELOAD in un processo del dominio shell
  → in due fasi: prima portare SELinux in Permissive, poi modificare task->real_cred / cred in init_cred
  → uid=0(root) context=u:r:kernel:s0, e installazione del daemon su

Ma ciò che vale davvero la pena scrivere non è "come ottenere root" — è ciò che accade dopo averlo ottenuto.

Ciò che si ottiene non è un root stabile, ma "uno stato che può esplodere in qualsiasi momento".

La primitiva di scrittura dell'exploit inserisce un rt_mutex_waiter falsificato nella catena futex PI reale, e il vettore di questo waiter è uno stack del kernel / pagina spray che verrà riutilizzata dalle successive system call. Pertanto, dal momento in cui root atterra, qualsiasi cambiamento di scheduling o priorità a livello di sistema può calpestarlo, causando direttamente un kernel panic e un riavvio. Non è un bug, è il costo intrinseco di questa tecnica di sfruttamento — vedi docs/03.


1. Limiti di applicabilità (in caso di mancata corrispondenza l'intera soluzione è invalida)

Perché è indispensabile vincolare la versione del kernel: il difetto è stato corretto in 6.6.140, e questa macchina ha 6.6.118 < 6.6.140, quindi è ancora presente; inoltre tutti gli indirizzi dei simboli del kernel dell'exploit e la "geometria del carrier" sono ancorati a questo singolo build; cambiando kernel la tabella degli offset diventa immediatamente invalida, e in genere non è possibile tornare indietro.


2. Panoramica del percorso di privilege escalation

root@kitploit:~
┌─ Materiali ───────────────────────────────────────────┐
│ boot.img + xbl_config.elf (estratti dal firmware del dispositivo) │
│        ↓ risoluzione dei simboli                       │
│ target.h (indirizzi dei simboli del kernel, verificati byte per byte con kallsyms) │
│        ↓ build                                         │
│ preload.so ──► /data/local/tmp/*.so sul dispositivo    │
└────────────────────────────────────────────────────────┘
                 ↓  iniezione LD_PRELOAD
     ┌──────────── in due fasi (richiede due processi distinti) ────────────┐
     │ Fase A  GW_SELINUX=1        → selinux_state.enforcing = 0   │
     │ Fase B  GW_CHAIN=1 RTSIG_TASK_INIT=1 GW_SU=1               │
     │         → task->real_cred ← &init_cred                      │
     │         → task->cred      ← &init_cred (eseguito dal processo "scrittore preimpostato") │
     │         → setresuid(0,0,0) normalizzazione                  │
     │         → installazione del su incorporato + daemon         │
     └─────────────────────────────────────────────────────────────┘
                 ↓
     uid=0(root) context=u:r:kernel:s0

Tre punti che devono essere eseguiti correttamente (in caso contrario si blocca o si va direttamente in panic):

  1. Regola ferrea dell'ordine: prima real_cred, poi cred. L'ordine inverso causa un'immediata escalation completa dei privilegi e la perdita di controllo dei thread.
  2. Tra i due colpi esiste inevitabilmente uno stato transitorio in cui cred ≠ real_cred. In quel momento qualsiasi sched_setaffinity restituisce EPERM → l'intero ciclo si blocca. La soluzione corretta è effettuare il fork del processo "scrittore preimpostato" prima del primo colpo (credenziali pulite): il processo padre esegue il primo colpo, lo scrittore esegue il secondo, e nessuno dei due effettua syscall nello stato transitorio.
  3. Il modello degli indirizzi è indipendente da KASLR. L'intero sfruttamento utilizza solo l'alias della mappatura lineare alias(image) = PAGE_OFFSET | (image − KIMAGE_TEXT_BASE + Δ), stabile tra i riavvii; il vero valore della cosiddetta "fase di slide" è l'autoverifica della primitiva di scrittura, non il bypass di KASLR.

Framework upstream: Linuxoid-cn/CVE-2026-43499-Poc-Analysis. Attenzione, questo non è GhostLock — GhostLock segue la via di pselect, che non corrisponde alla geometria del punto di atterraggio del waiter di questo build, vedi docs/06.


3. Indice


4. Cronologia


5. Una riga per chi verrà dopo

Se anche tu stai attaccando un modello con BL bloccato, pensa prima chiaramente a cosa vuoi fare con root, perché su questi modelli root è molto probabilmente una finestra utilizzabile solo per una decina di minuti. Elenca le operazioni che "richiedono root e devono sopravvivere al riavvio", eseguile tutte in una volta, poi reboot per tornare a uno stato pulito. Non cercare di "eliminare gli effetti collaterali" — è il costo intrinseco della tecnica stessa.

Scarica lo strumento
VoceValoreNote
ModelloHonor WIN RT, modello AAK-AN00Nome commerciale "Honor WIN RT"
SoCSnapdragon 8 Elite SM8750-ABFirmware non intercambiabile con Honor WIN (AAP-AN00, SM8850-AC)
SistemaAndroid 16 / MagicOS 10—
Kernel6.6.118-android15-8-gf17133276a57-abogki518694926-4k★ Condizione vincolante, corrispondenza carattere per carattere
Configurazione kernel4K pages, VA_BITS=39, CONFIG_FUTEX_PI=yPrerequisito della geometria del carrier
Pacchetto firmware.170.160 / .175 non testati
BootloaderBloccato permanentementeNiente fastboot / niente su persistente
DocumentoContenuto
01 · Analisi di fattibilitàPerché resta solo rt_sigreturn come carrier
02 · Catena di privilege escalation e fattori di successoPrimitiva di scrittura, catena in sei passi, scrittore preimpostato, criteri di successo
03 · Vera causa dell'instabilità: residui della catena PI★ Nucleo. La disconnessione di rete non è disconnessione, è panic; include disassembly dei punti di crash
04 · Canale senza computer: ShizukuUsare rish di Shizuku al posto di adb per avviare l'exploit
05 · late-load di KernelSUModalità di attivazione del LKM e perché è il detonatore più pericoloso
06 · Elenco dei vicoli ciechiPercorsi provati ma non funzionanti, per evitare che altri li ritentino
07 · Insidie e ambienteOttenere lo stack di panic senza root, insidie dell'ambiente degli script
tools/Script riutilizzabili (versione generica anonimizzata)
DataProgresso
09-08Confermato il blocco permanente del BL e la rimozione del canale di sblocco OEM ⇒ abbandonata la via ufficiale, passaggio alla via della vulnerabilità
09-09Superata la libreria firmware dell'assistenza del produttore, ottenuto boot.img, estratti kernel e simboli
09-10La ricerca del carrier si è concentrata su rt_sigreturn; privilege escalation riuscita (20:14), uid=0
09-11Aperto il canale senza computer (Shizuku); KernelSU attivabile; identificata la vera causa della "disconnessione di rete" = residui della catena PI