Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-99999 — Sonde Go qui reproduit le bug de déchargement de checksum IPv4 sous Linux PwnEscape sur un TAP préparé, en injectant des en-têtes virtio forgés et en vérifiant la copie hors limites de l'en-tête de fragment. | Kitploit
Outils/GitHubGitHub/perongh/cve-2026-99999
Sniffing et Analyse de PaquetsAnalyse des VulnérabilitésExploitationSécurité RéseauLabs et Pratique
GitHubperongh/cve-2026-99999

CVE-2026-99999

Sonde Go qui reproduit le bug de déchargement de checksum IPv4 sous Linux PwnEscape sur un TAP préparé, en injectant des en-têtes virtio forgés et en vérifiant la copie hors limites de l'en-tête de fragment.

Voir le dépôt
2231il y a 20 joursVérifié par Kitploit

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

Sonde de laboratoire CVE-2026-99999

Sonde Go pour le bug de déport de somme de contrôle IPv4 sous Linux connu sous le nom de PwnEscape. Elle s'attache à un TAP que vous avez déjà préparé et vérifie si le fragmenteur de l'hôte fait confiance à un en-tête IPv4 réécrit par skb_checksum_help.

La sonde gère l'injection et la capture de paquets. scripts/setup.sh prépare les interfaces du laboratoire, les paramètres sysctl et la règle nftables à l'intérieur du namespace réseau pwnesc. scripts/teardown.sh supprime le laboratoire.

Ce qu'elle vérifie

Sur un noyau qui complète encore une somme de contrôle partielle avant de lire ihl (reproduit ici sur 6.18.54 ; corrigé dans 6.18.57) :

  1. Un en-tête de somme de contrôle virtio avec csum_start=22 est accepté. Deux balises VID-0 sont ensuite retirées (14+4+4), de sorte que l'écriture de la somme de contrôle atterrit sur l'octet version/IHL de l'IPv4.
  2. Le premier octet passe de 0x45 à 0x4f. Le fragmenteur utilise un en-tête de 60 octets.
  3. Avec la défragmentation conntrack et la valeur par défaut -head 8, la tête linéaire fait 28 octets, de sorte que la copie de l'en-tête de 60 octets lit 32 octets au-delà de skb_headlen dans les options IPv4 des fragments de sortie.

Cela exerce la primitive de divulgation décrite dans l'article PwnEscape de PWN.AI. Avec CONFIG_INIT_ON_ALLOC_DEFAULT_ON, l'espace libre en queue de slab fraîchement alloué peut apparaître comme des zéros dans les octets copiés.

Prérequis

  • Un hôte de test ou une VM Linux avec un noyau qui complète les sommes de contrôle partielles avant de lire ihl
  • Go 1.27.1 ou plus récent
  • Privilèges root pour la configuration du laboratoire et la sonde
  • ip, nft, sysctl
  • nf_conntrack et nf_defrag_ipv4 intégrés ou chargeables
  • /dev/net/tun

Compilation et exécution

Depuis le répertoire du dépôt sur l'hôte :

go build -o poc .
sudo ./scripts/setup.sh
sudo ip netns exec pwnesc ./poc

La sonde ouvre pwntap avec IFF_TAP|IFF_NO_PI|IFF_VNET_HDR et capture la sortie sur pwnv1. Réservez pwntap à la sonde. La règle nftables ct active la défragmentation conntrack, et pwnv0 utilise une MTU de 200 pour fragmenter à nouveau le datagramme réassemblé en sortie.

Une vérification d'en-tête réussie affiche verify: first byte 0x4f ihl=15. La sonde rapporte ensuite les fragments de sortie, leurs options IPv4 et les octets copiés au-delà de la tête linéaire.

Options

  • -head (par défaut 8) : charge utile du fragment à l'offset 0 en octets ; un multiple de 8 de 8 à 40. La copie attendue au-delà de la tête linéaire est de 40 - head octets.
  • -rest (par défaut 400) : charge utile du fragment de complétion en octets ; au moins 16.
  • -spray (par défaut 0) : nombre de trames de même taille allouées immédiatement avant le fragment à l'offset 0.
  • -spray-fill (par défaut 0xee) : octet utilisé pour remplir ces trames.
  • -page : utiliser une tête page_frag, dont la queue peut contenir des métadonnées skb. Par défaut, il s'agit d'une tête slab.
  • -skip-verify : passer directement à la vérification du datagramme fragmenté.

PWN_TAP sélectionne l'interface TAP (par défaut pwntap). PWN_CAP sélectionne l'interface de capture (par défaut pwnv1). Le script de configuration utilise ces noms par défaut.

Nettoyage

Une fois la sonde terminée, quittez tout shell dans pwnesc et exécutez depuis l'hôte :

sudo ./scripts/teardown.sh

Cela supprime pwnesc ainsi que ses interfaces, la table nftables ip pwn et les paramètres sysctl locaux au namespace.

Télécharger l’outil