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-OPPO-PCKM00 — CVE-2026-43499 GhostLock futex UAF LPE PoC pour OPPO PCKM00 (SM6150) / Linux 4.14.180 | Kitploit
Outils/GitHubGitHub/yijiacloud/ghostlock-oppo-pckm00
Sécurité AndroidEscalade de PrivilègesMécanismes de PersistanceAnalyse des VulnérabilitésExploitationPost-ExploitationSécurité MobileDéveloppement de Charges UtilesExploitation de Binaires
GitHubyijiacloud/ghostlock-oppo-pckm00

GhostLock-OPPO-PCKM00

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

1il y a 9 joursPas encore vérifié

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
Voir le dépôt

GhostLock — OPPO PCKM00 (4.14.180) PoC

CVE-2026-43499 (GhostLock) — PoC d'élévation de privilèges locale par use-after-free dans l'héritage de priorité futex du noyau Linux, porté sur le OPPO PCKM00 (OP4A57, SM6150, Android 11, noyau 4.14.180-perf+).

AVERTISSEMENT / 免责声明 Ce projet est destiné uniquement à la recherche en sécurité autorisée et à des fins éducatives. Ne l'utilisez pas sur un appareil qui ne vous appartient pas ou pour lequel vous n'êtes pas explicitement autorisé à effectuer des tests. L'exécution de l'exploit peut faire planter le noyau. L'auteur décline toute responsabilité en cas d'utilisation abusive ou de dommages.

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


1. Vulnérabilité

CVE-2026-43499 (GhostLock) est un use-after-free dans le code d'héritage de priorité futex du noyau Linux. Le bug réside dans l'utilisation incorrecte de remove_waiter() dans le chemin de rollback du verrou proxy de rt_mutex_start_proxy_lock(). Le rt_mutex_waiter libéré (alloué sur la pile du noyau) est réinterprété comme un fd_set contrôlé par l'attaquant copié par pselect(), ce qui donne une primitive d'écriture arbitraire.

Plage affectée : Linux 4.x–6.x (introduit en 2011). La série 4.14 est entièrement affectée. Voir report.md pour l'analyse complète et les offsets de symboles vérifiés.

Chaîne d'exploitation

root@kitploit:~
futex requeue-pi UAF
   └─> pselect fd_set stack copy (fake rt_mutex_waiter / fake task)
         └─> arbitrary write (rt_mutex tree ops / sched_setattr)
               └─> overwrite ashmem_fops -> configfs bin read/write
                     └─> pipe_buffer page rewrite (physical RW primitive)
                           └─> patch current task cred -> root

Le PoC s'exécute entièrement dans l'espace utilisateur via LD_PRELOAD — aucun redémarrage de l'appareil n'est nécessaire (sauf en cas de panique du noyau).


2. Cible

Portage vers d'autres appareils 4.14 : copiez exploit/targets/oppo-pckm00/target.h et régénérez les offsets de symboles à partir de votre image noyau (voir analysis/).


3. Structure du dépôt

root@kitploit:~
.
├── report.md                    # Full vulnerability analysis & verified offsets
├── exploit/
│   ├── Makefile                 # Build preload.so (Windows NDK / WSL)
│   ├── src/
│   │   ├── preload.c            # LD_PRELOAD entry + forced disk logging + su
│   │   ├── main.c               # Orchestration (waiter/owner/consumer threads)
│   │   ├── slide.c              # KASLR leak (boot_id / nfulnl loggers)
│   │   ├── fops.c               # ashmem_fops overwrite + configfs primitive
│   │   ├── pipe.c               # pipe_buffer physrw primitive
│   │   ├── root.c               # task walk + cred patch + seccomp/selinux
│   │   ├── util.c               # kernelsnitch, skb page prep, kernel RW
│   │   ├── su_daemon.c          # embedded su server (drop-in)
│   │   ├── su_blob.S            # .incbin of su_daemon
│   │   └── wallpaper_blob.S     # .incbin of wallpaper payload
│   ├── targets/oppo-pckm00/target.h   # 4.14.180 symbol/struct offsets
│   └── assets/wallpaper.webp    # embedded wallpaper payload
├── analysis/                    # kernel image / kallsyms extraction scripts
└── LICENSE                      # Apache-2.0 (same as upstream GhostLock)

4. Compilation

Nécessite Android NDK r29 (aarch64-linux-android30-clang).

NDK Windows

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

WSL (recommandé)

root@kitploit:~
# put NDK at /opt/ndk/android-ndk-r29 (linux-x86_64 toolchain)
cd exploit
make wsl
# or directly:
bash ../analysis/build_preload.sh

Sortie : exploit/preload.so (objet partagé ELF aarch64 64 bits).

Le processus de compilation compile également su_daemon.c en un binaire PIE et l'intègre (ainsi que le fond d'écran) dans le .so via les blobs .S.


5. Utilisation

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

En cas de succès, le shell affiche uid=0(root). Un démon su est installé dans /apex/com.android.virt/bin/su (avec repli sur /data/local/tmp/su) et un fond d'écran intégré est appliqué comme artefact de persistance/vérification.

Journalisation disque forcée en temps réel

Tous les diagnostics pr_* sont également écrits dans /sdcard/Download/log_<timestamp>.txt (avec repli sur /data/local/tmp/log_<timestamp>.txt), avec O_SYNC + fsync() à chaque ligne afin que les journaux survivent à une panique du noyau / un redémarrage — récupérez-les avec :

root@kitploit:~
adb pull /sdcard/Download/log_*.txt

6. Remarques et limitations

  • KASLR : le PoC divulgue le slide via le chemin de journalisation boot_id/nfulnl (slide.c) plus un passage de vérification ashmem_fops (fops.c).
  • Différences 4.14 vs 6.x gérées dans ce portage :
    • configfs utilise les .read/.write hérités (pas de read_iter/write_iter),
    • ashmem_fops n'a pas de show_fdinfo,
    • generic_file_splice_read remplace copy_splice_read,
    • selinux_enforcing se trouve dans struct selinux_state,

7. Crédits

  • NebuSec — recherche originale sur GhostLock et framework d'exploit (IonStack/CVE-2026-43499), Apache-2.0. https://github.com/NebuSec/CyberMeowfia
  • KernelSnitch (canal auxiliaire de hachage futex) est intégré selon les conditions de son amont.

Licence

Apache-2.0 — voir LICENSE.

Télécharger l’outil
ChampValeur
AppareilOPPO PCKM00 / OP4A57
SoCQualcomm SM6150
Android11 (RKQ1.200903.002)
Correctif de sécurité2022-09-05
Noyau4.14.180-perf+ (arm64, clang 10.0.7)
BuildOPPO/PCKM00/PCKM00:11/RKQ1.200903.002/1635513065:user/release-keys
  • dispositions rt_mutex_waiter / pipe_inode_info / cred en 4.14.
  • Certains offsets de structures (par ex. task_struct.seccomp) sont fournis au mieux ; l'échec du patch seccomp ne bloque pas le root par écrasement de cred.
  • L'exécution de l'exploit peut déclencher une panique du noyau (~97 % de fiabilité en ~5 s sur la cible) ; utilisez un appareil isolé.