Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ghostlock-cve-2026-43499-4.19-k40 — CVE-2026-43499 (GhostLock) PoC UAF dans rtmutex remove_waiter() pour élévation locale de privilèges vers root, adapté aux noyaux Android 4.19 de Qualcomm (Redmi K40 / classe Snapdragon 870), basé sur LD_PRELOAD | Kitploit
Outils/GitHubGitHub/yijiacloud/ghostlock-cve-2026-43499-4.19-k40
Sécurité AndroidEscalade de PrivilègesExploitationPost-ExploitationSécurité MobileDéveloppement de Charges UtilesExploitation de Binaires
GitHubyijiacloud/ghostlock-cve-2026-43499-4.19-k40

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

ghostlock-cve-2026-43499-4.19-k40

CVE-2026-43499 (GhostLock) PoC UAF dans rtmutex remove_waiter() pour élévation locale de privilèges vers root, adapté aux noyaux Android 4.19 de Qualcomm (Redmi K40 / classe Snapdragon 870), basé sur LD_PRELOAD

Voir le dépôt
1130il y a 29 joursPas encore vérifié

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

Élévation locale de privilèges exploitant CVE-2026-43499 — un bug de rtmutex remove_waiter() qui laisse un struct rt_mutex_waiter suspendu sur la pile noyau du waiter (kernel/locking/rtmutex.c, CWE-416 use-after-free). Adapté de NebuSec/CyberMeowfia (IonStack/CVE-2026-43499, Apache-2.0) pour une famille de noyaux constructeur Qualcomm Android 4.19.x.

  • Noyau : 4.19.157-perf-g9607d8651312 (qcom, clang 10.0.7, SMP PREEMPT, aarch64)
  • Classe d'appareil : Snapdragon 870 (sm8250-ac) / cartes de type Redmi K40, builds de l'ère Android 13 avec en-tête de boot v3
  • Bug : le rollback du proxy-lock de futex_requeue() appelle remove_waiter() qui opère sur current au lieu de waiter->task — retrait de l'arbre rb sans pi_lock, pi_blocked_on pendant, menant à une UAF sur la pile noyau. Concerné jusqu'aux versions corrigées 5.10/5.15/6.1/6.6/6.12/6.18/7.0 ; 4.19 n'a pas de backport (EOL), donc 4.19.157-perf est concerné.

Contenu du dépôt

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

Adaptations de la passe 2 pour le noyau 4.19 (par rapport à l'amont 6.x)

  • configfs_read_file / configfs_write_bin_file sont placés dans les emplacements .read/.write des fops (signatures 4.19), et la primitive de lecture utilise la disposition simplifiée de faux buffer count/page/ppos=0
  • le préfixe de nom ashmem (/dev/ashmem) est absent sur ce noyau — longueur de préfixe 0
  • géométrie kmalloc : 4.19 a 3 types de caches (NORMAL/RECLAIM/DMA, sans caches per-memcg) ; le tableau de buffers de pipe hérité à 16 emplacements atterrit dans kmalloc-1024
  • selinux_blob_sizes n'existe pas sur 4.19 → accès direct à cred->security (SELINUX_CRED_BLOB_OFF=0) ; struct seccomp n'a pas de filter_count
  • ASHMEM_MISC_FOPS = emplacement miscdevice.fops ()

Compilation

Linux / WSL avec Android NDK :

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

Sorties : prebuilt/preload.so (charge utile LD_PRELOAD) et un su_daemon PIE intégré.

Utilisation d'ADB (root en une seule fois)

Nécessite un shell ADB (un simple adb shell non privilégié suffit — l'exploit s'exécute entièrement sans privilèges et s'élève de lui-même).

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.

Variantes optionnelles en une ligne :

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'"

Journal de débogage (survit au panic/redémarrage)

Chaque ligne pr_* est répliquée sur disque avec un write()+fsync() immédiat afin que la trace survive à un panic/redémarrage du noyau :

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

Chemins de repli si /sdcard est indisponible : /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')"

Marqueurs de log clés :

  • preload starting pid=... log=/sdcard/Download/log_<ts>.txt — charge utile chargée
  • slide-kaslr-ok ... base=... — base KASLR récupérée
  • pipe-physrw-summary ... root=1 ... — RW physique installé
  • uid_before=... uid_after=0 ... selinux=1->0 — creds corrigés
  • sur 4.19, le gadget de slide affiche UNVERIFIED avant sa première tentative — c'est l'étape à régler par appareil à l'aide de ce log.

Remarques et limitations

  • La première étape (fuite du slide KASLR) est réglée par appareil ; les valeurs qui n'ont pas pu être dérivées statiquement pour 4.19 sont signalées dans target.h et journalisées comme UNVERIFIED à l'exécution. Itérez sur l'appareil à l'aide du journal fsync.
  • CONFIG_STATIC_USERMODEHELPER=y sur cette compilation désactive les astuces de chemin modprobe ; la voie principale est le patch direct des cred.
  • Vérifiez la justesse des offsets sur votre build exact via les kallsyms du noyau (/proc/kallsyms) et /proc/slabinfo avant le déploiement.

Licence

Apache-2.0 (en amont : NebuSec/CyberMeowfia). Uniquement pour la recherche en sécurité et le root d'appareils autorisés. À utiliser sur du matériel vous appartenant.

Télécharger l’outil
ashmem_misc + 0x10
  • les offsets de structures (task_struct / cred / pipe_inode_info / file_operations / mm_struct / struct page / configfs_buffer) ont été redérivés à partir des kallsyms + ikheaders embarqués de ce noyau et validés contre la propre table RELA de relocalisation du noyau