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-a17 — Exploit noyau pour CVE-2026-43499 sur Samsung Galaxy A17 permettant d'obtenir root via un bypass de KDP, une récupération de KASLR et l'exécution d'une workqueue forgée avec un shell persistant. | Kitploit
Outils/GitHubGitHub/mobilehackinglab/ghostlock-a17
Sécurité AndroidEscalade de PrivilègesMécanismes de PersistanceExploitationPost-ExploitationSécurité MobileExploitation de Binaires
GitHubmobilehackinglab/ghostlock-a17

ghostlock-a17

Exploit noyau pour CVE-2026-43499 sur Samsung Galaxy A17 permettant d'obtenir root via un bypass de KDP, une récupération de KASLR et l'exécution d'une workqueue forgée avec un shell persistant.

Voir le dépôt
1il y a 1 jourPas 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

GhostLock — CVE-2026-43499 sur Samsung Galaxy A17

Chaîne d'exploitation complète de l'utilisateur vers root pour CVE-2026-43499 (« GhostLock ») sur le Samsung Galaxy A17 SM-A175F, sous Android 16 / GKI 6.12.

La chaîne part des primitives GhostLock publiques et se termine par un helper en mode utilisateur s'exécutant avec :

root@kitploit:~
uid=0(root) gid=0(root) groups=0(root)
context=u:r:kernel:s0

Elle lance également un shell root persistant à chaque démarrage via g4d / g4sh et se termine sans panique du noyau.

📖 Documentation technique complète :
https://www.mobilehackinglab.com/blog/cve-2026-43499-ghostlock-a17-root-shell

Note de recherche

Nous n'avons pas découvert CVE-2026-43499. Le crédit de la vulnérabilité d'origine et de la recherche IonStack revient à Nebula Security.

Ce dépôt documente notre portage indépendant vers le Samsung Galaxy A17, les modifications requises par les protections du noyau Samsung, ainsi qu'une nouvelle étape finale d'exploitation.

Réservé à la recherche en sécurité autorisée et à des fins pédagogiques uniquement.


Cible

CVECVE-2026-43499 — « ghostlock »
AppareilSamsung Galaxy A17 (SM-A175F, mt6789)
GPUMali-G57
Noyau6.12.23-android16-5-abA175FXXS3BZA5-4k
Résultatuid=0(root) / u:r:kernel:s0
Shell rootdémon g4d + client g4sh
PersistanceÀ chaque démarrage
Sortie de l'exploitPropre, sans panique du noyau
Contremesures rencontréesSamsung KDP, DEFEX, SELinux, PANIC_ON_OOPS, arm64 KASLR

Qu'est-ce qui rend ce portage différent ?

La recherche originale sur ghostlock fournit les primitives d'entrée :

root@kitploit:~
pselect reclaim
      ↓
fake rt_mutex_waiter
      ↓
constrained rb-tree pointer write

Sur le Galaxy A17, cependant, la phase finale standard de patch des credentials ne fonctionne pas.

Le KDP de Samsung bloque l'écriture habituelle des credentials

KDP protège les données du noyau liées aux credentials au niveau EL2.

Sur cette build, les tentatives de modification des credentials de tâche ont été silencieusement ignorées, même lorsque les adresses cibles étaient correctes.

Ainsi, au lieu d'écrire des credentials root, ce portage fait en sorte que le noyau s'exécute avec des credentials privilégiés existants.

Nouvelle phase finale : exécution d'une workqueue forgée

L'étape finale :

root@kitploit:~
constrained kernel write
        ↓
physical read/write channel
        ↓
KASLR slide recovery
        ↓
discover system_wq / cpu_pwq
        ↓
forge work_struct
        ↓
call_usermodehelper_exec_work
        ↓
/system/bin/sh
        ↓
uid=0(root), u:r:kernel:s0

Un élément de travail forgé est placé sur un pool lié system_wq et déclenché par une rafale d'allocations/libérations ptmx.

Le helper en mode utilisateur qui en résulte s'exécute avec les credentials d'init.

Aucune réécriture des credentials de tâche n'est nécessaire.


Chaîne d'exploitation

root@kitploit:~
userspace shell (uid 2000)
        │
        ▼
pselect / PI-futex primitive
        │
        ▼
constrained aligned kernel pointer write
        │
        ▼
forged pipe_buffer channel
        │
        ▼
arbitrary physical read/write
        │
        ├── recover KASLR slide
        │
        ├── locate system_wq / cpu_pwq
        │
        └── prepare forged work_struct
        │
        ▼
queue usermode-helper work
        │
        ▼
ptmx storm wakes worker
        │
        ▼
/system/bin/sh runs with init creds
        │
        ▼
uid=0(root)
        │
        ▼
g4d → @ghostlockd → g4sh

Principaux changements techniques

Comparé au portage public OnePlus, la plupart des étapes après la primitive d'écriture initiale ont été retravaillées.

1. Nouvelle étape root compatible KDP

La phase finale de patch des credentials a été remplacée par un élément de workqueue forgé ciblant le chemin d'exécution du helper en mode utilisateur.

Cela évite entièrement d'écrire dans les structures cred protégées.

2. Nouvel oracle de décalage KASLR

L'approche d'ancrage précédente par perf-event était peu fiable sur cet appareil.

À la place, l'exploit utilise trois pointeurs décalés de l'entrée ctl_table de boot_id :

root@kitploit:~
procname
data
proc_handler

Les trois sont recoupés avant d'accepter le décalage.

3. Découverte de la workqueue à l'exécution

cpu_pwq est découvert en parcourant :

root@kitploit:~
system_wq → pwqs

plutôt qu'en s'appuyant sur un décalage fixe spécifique à l'appareil.

4. Sortie propre de l'exploit

Le canal d'origine laisse des modifications collatérales de l'état de struct page qui peuvent déclencher PANIC_ON_OOPS lors du démontage.

La chaîne actuelle évite le crash au démontage et a été démontrée sortant proprement après le root.

5. Shell root

Le helper en mode utilisateur lance :

root@kitploit:~
g4d

qui écoute sur la socket Unix abstraite :

root@kitploit:~
@ghostlockd

g4sh s'y connecte et fournit soit un shell root interactif, soit l'exécution d'une commande unique.

root@kitploit:~
/data/local/tmp/a/g4sh
/data/local/tmp/a/g4sh -c "id"

Pourquoi le Galaxy A17 est intéressant

Cette cible combine plusieurs protections qui neutralisent les techniques courantes d'exploitation du noyau Android :

  • KDP Samsung — protège les données du noyau liées aux credentials au niveau EL2
  • DEFEX — restreint l'exécution privilégiée depuis des chemins non fiables
  • SELinux
  • PANIC_ON_OOPS / PANIC_ON_BUG
  • Grands décalages KASLR arm64
  • Primitive d'écriture contrainte par pointeur uniquement

Cela a imposé une stratégie d'exploitation différente de l'habituelle :

root@kitploit:~
arbitrary RW → patch cred → disable SELinux

À la place :

root@kitploit:~
arbitrary RW → recover runtime state → forge kernel work → execute usermode helper

Compilation

Nécessite un NDK Android récent.

root@kitploit:~
make

Produit :

root@kitploit:~
ghostlock   # exploit
g4d         # static root-shell daemon
g4sh        # root-shell client

Exécution

Poussez les binaires :

root@kitploit:~
adb push ghostlock /data/local/tmp/a/g4
adb push g4d /data/local/tmp/a/g4d
adb push g4sh /data/local/tmp/a/g4sh

adb shell 'chmod 755 /data/local/tmp/a/g4 /data/local/tmp/a/g4d /data/local/tmp/a/g4sh'

Lancez la boucle d'exploitation avec gestion des redémarrages :

root@kitploit:~
./scripts/rr_loop4.sh

Après ROOTED :

root@kitploit:~
adb shell /data/local/tmp/a/g4sh

Ou exécutez une seule commande :

root@kitploit:~
adb shell '/data/local/tmp/a/g4sh -c "id"'

Résultat attendu :

root@kitploit:~
uid=0(root) gid=0(root) groups=0(root) context=u:r:kernel:s0

Fiabilité

La primitive est probabiliste et fortement dépendante des conditions de démarrage.

Une exploitation réussie peut nécessiter plusieurs tentatives. Le script rr_loop4.sh inclus gère les nouvelles tentatives et les cycles de redémarrage automatiquement.

C'est un exploit de recherche, pas un outil de root instantané en un coup.


Validation QEMU

qemu-e2e/ contient un harnais de validation de bout en bout utilisant le noyau Samsung extrait.

Le harnais a été utilisé pour tester :

  • les modifications de la chaîne d'exploitation
  • la gestion du KASLR
  • la forge de workqueue
  • l'exécution du helper en mode utilisateur
  • le démontage propre de l'exploit
  • les allers-retours g4d / g4sh

L'image du noyau Samsung elle-même n'est pas incluse.

Voir :

root@kitploit:~
qemu-e2e/

pour les instructions de configuration.


Structure du dépôt

root@kitploit:~
Makefile
src/                  exploit source and device profiles
src/daemon/           g4d root daemon + g4sh client
docs/OFFSETS.md       validated device offsets
docs/PORTING.md       porting notes
examples/             proof-of-root artifacts
scripts/rr_loop4.sh   reboot-aware exploit loop
qemu-e2e/             end-to-end QEMU validation

Recherches associées

Recherche originale GhostLock / IonStack

NebuSec:

https://nebusec.ai/research/ionstack-part-3/

https://github.com/NebuSec/CyberMeowfia/tree/main/IonStack

Portage OnePlus

https://github.com/JoinChang/ghostlock-oneplus

Article du Mobile Hacking Lab

Un regard plus approfondi sur le portage Samsung Galaxy A17, les limitations de KDP, la récupération du KASLR, l'étape finale basée sur une workqueue et l'implémentation du shell root :

https://www.mobilehackinglab.com/blog/cve-2026-43499-ghostlock-a17-root-shell


Preuve du root

Les artefacts recueillis sur un appareil réel sont disponibles dans :

root@kitploit:~
examples/

notamment les journaux d'exploitation et la vérification du contexte root.

Exemple :

root@kitploit:~
uid=0(root)
gid=0(root)
groups=0(root)
context=u:r:kernel:s0

Avertissement

Cette preuve de concept est fournie uniquement à des fins éducatives et de recherche en sécurité autorisée.

Ne l'utilisez que sur des appareils et environnements que vous possédez ou que vous avez l'autorisation explicite de tester.

Télécharger l’outil