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-98432 — Script shell idempotent qui installe une règle iptables persistante supprimant les paquets TCP IPv4 comportant des options IP afin d'atténuer CVE-2026-98432 sur Ubuntu et Debian jusqu'à la disponibilité d'un noyau corrigé. | Kitploit
Outils/GitHubGitHub/mervent/cve-2026-98432
Outils DéfensifsAnalyse des VulnérabilitésScripting et AutomatisationAudit de ConfigurationSécurité RéseauMauvaise ConfigurationRéponse aux Incidents
GitHubmervent/cve-2026-98432

cve-2026-98432

Script shell idempotent qui installe une règle iptables persistante supprimant les paquets TCP IPv4 comportant des options IP afin d'atténuer CVE-2026-98432 sur Ubuntu et Debian jusqu'à la disponibilité d'un noyau corrigé.

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

Atténuation temporaire de CVE-2026-98432 pour Ubuntu et Debian

Un script idempotent unique qui supprime les paquets TCP IPv4 entrants transportant des options IP, conserve la règle à travers les redémarrages et vérifie qu'elle fonctionne. Il est destiné aux serveurs Ubuntu (18.04 – 24.04) et Debian (11 – 13) qui ne peuvent pas encore obtenir un noyau corrigé.

Il s'agit d'une solution provisoire, pas d'un correctif. Le seul véritable correctif est un noyau corrigé accompagné d'un redémarrage. Supprimez cette atténuation une fois que le serveur exécute un noyau corrigé.

Utilisation

curl -fsSL https://raw.githubusercontent.com/Mervent/cve-2026-98432/master/install.sh | sudo sh

Vous pouvez l'exécuter autant de fois que vous le souhaitez : les fichiers sont écrasés et la règle n'est jamais dupliquée. À la fin, le script valide le résultat et se termine avec un code non nul en cas d'échec :

--- validation ---
OK    helper installed: /usr/local/sbin/cve-2026-98432-mitigation
OK    cron entry: /etc/cron.d/cve-2026-98432
OK    cron service enabled
OK    iptables rule active (raw/PREROUTING)
OK    exactly one rule (no duplicates)
      plain SYN: connected, SYN with IP options: timeout
OK    drop test: packets with IP options are dropped
--- rule counters ---
 pkts bytes target     prot opt in     out     source               destination
    3   204 DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            u32 "0x0>>0x18&0xf=0x6:0xf" /* cve-2026-98432 */

Ce qu'il installe

CheminObjectif
/usr/local/sbin/cve-2026-98432-mitigationAssistant qui détient la règle. Sans argument, il ajoute la règle si elle est absente. --check renvoie 0 si la règle est active. --remove la supprime.
/etc/cron.d/cve-2026-98432Entrée @reboot qui réapplique la règle après chaque démarrage

La règle elle-même :

iptables -t raw -I PREROUTING -p tcp -m u32 --u32 "0>>24&0xF=6:15" \
    -m comment --comment cve-2026-98432 -j DROP

Vérifier après un redémarrage

sudo /usr/local/sbin/cve-2026-98432-mitigation --check && echo active
sudo iptables -t raw -L PREROUTING -v -n | grep cve-2026-98432

Supprimer après le démarrage dans un noyau fixe

sudo /usr/local/sbin/cve-2026-98432-mitigation --remove
sudo rm /usr/local/sbin/cve-2026-98432-mitigation /etc/cron.d/cve-2026-98432

Pour savoir si votre distribution a publié un correctif, consultez Ubuntu ou Debian (pour Debian 9 – 11, le tracker Freexian ELTS). Une fois que votre version affiche « Fixed », exécutez apt update && apt full-upgrade, redémarrez, puis supprimez l'atténuation.

Depuis le 1er novembre 2026, Debian 12 (linux 6.1.190-1, DLA-4841-1) et Debian 13 (linux 6.12.113-1, DSA-6568-1) disposent déjà de noyaux corrigés ; sur ces versions, effectuez donc une mise à niveau au lieu d'utiliser ce script. Le correctif de Debian 11 (linux 5.10.272-1, ELA-1846-1) n'est disponible que dans le dépôt ELTS de Freexian : commercial, mais gratuit sur demande pour les particuliers et les petites organisations à but non lucratif.

Justification

La vulnérabilité

CVE-2026-98432 (« ipv4: free inet_opt and ireq_opt after an RCU grace period ») est un use-after-free dans la poignée de main TCP IPv4. Elle affecte Linux 4.4 et les versions ultérieures et est notée CVSS 9.8.

Si un SYN transporte des options IPv4, le noyau les enregistre sur le socket de requête afin de pouvoir les renvoyer dans le SYN-ACK. tcp_v4_syn_recv_sock() transmet ensuite ce tampon au socket enfant sans le copier. Lorsque le socket enfant meurt, le tampon est libéré par un simple kfree(), alors qu'un autre CPU peut encore être en train de le lire pour construire un SYN-ACK en réponse à un SYN retransmis.

Tout cela se produit dans le noyau avant qu'une quelconque application ne voie la connexion. N'importe quel port TCP IPv4 en écoute est joignable de cette manière (SSH, HTTP, PostgreSQL, etc.), et aucun identifiant n'est nécessaire. Anthropic a signalé un exploit distant en tant que root fonctionnel contre des hôtes disposant d'un listener multipath TCP (MPTCP). La Go Security Team note que le bogue n'est pas spécifique à MPTCP.

Pourquoi supprimer les paquets TCP avec options IP

La mémoire libérée trop tôt n'existe que lorsque le SYN entrant transporte des options IPv4. Sans options, il n'y a pas de tampon enregistré, donc le use-after-free n'a rien sur quoi agir. Le trafic TCP légitime ne transporte pratiquement jamais d'options IPv4, donc supprimer ces paquets ne coûte rien en pratique. Red Hat (RHSB-2026-016) et AlmaLinux publient une règle nftables équivalente.

u32 "0>>24&0xF=6:15" lit le champ IHL, la longueur de l'en-tête IPv4 en mots de 32 bits. Une valeur de 5 correspond à l'en-tête nu de 20 octets. Les valeurs de 6 à 15 signifient que des options sont présentes.

Red Hat indique qu'une telle règle « réduit l'exposition à cette vulnérabilité mais ne peut pas la prévenir entièrement ». Considérez-la comme une réduction du risque jusqu'à ce que le noyau soit corrigé.

Pourquoi raw / PREROUTING

  • PREROUTING voit chaque paquet entrant, à la fois le trafic destiné à l'hôte et le trafic transféré vers les conteneurs Docker sur les ports publiés. Une règle dans INPUT, qui est l'endroit où ufw place ses règles, manquerait le trafic transféré.
  • La table raw s'exécute avant le suivi de connexion, donc les paquets supprimés ne créent jamais d'entrées conntrack.
  • ufw et Docker ne vident pas raw/PREROUTING, donc la règle survit à leurs redémarrages.

Pourquoi iptables, et non nftables

  • iptables est présent sur toutes les versions cibles d'Ubuntu. Sur Ubuntu 18.04 et 20.04, il utilise le backend legacy ; à partir d'Ubuntu 22.04 et sur Debian 11+, c'est iptables-nft. Le binaire nft n'est pas installé par défaut partout. Sur Debian, iptables lui-même peut être absent ; le script vous demande alors d'exécuter apt install iptables.
  • Avec iptables-nft, ufw/Docker et cette règle partagent le backend nf_tables, donc une seule règle couvre les deux.
  • La correspondance u32 nécessite le module noyau xt_u32. S'il est absent, le script échoue et vous indique de vérifier modinfo xt_u32.

Pourquoi une entrée cron @reboot

  • Pas nftables.service. Sur Ubuntu, /etc/nftables.conf commence par flush ruleset, et le service exécute nft flush ruleset à l'arrêt. L'un ou l'autre efface les règles ufw et Docker.
  • Pas iptables-persistent. netfilter-persistent save vide toutes les règles actuelles, y compris celles de Docker, et restaurer cet instantané au démarrage entre en conflit avec les règles que Docker crée lui-même.
  • Pas ufw before.rules. Cela ne fonctionne que lorsque ufw est activé, et ses chaînes ne voient pas le trafic transféré vers les conteneurs.
  • cron.d. Il est installé sur les serveurs Ubuntu et Debian standard (le script vérifie sa présence), un fichier dans /etc/cron.d est idempotent par écrasement, et le supprimer se fait avec un simple rm. Le compromis est une fenêtre de quelques secondes après le démarrage pendant laquelle le réseau est opérationnel mais cron n'a pas encore appliqué la règle. C'est acceptable pour une atténuation qui n'a besoin de durer que jusqu'à la prochaine mise à jour du noyau.

Pourquoi pas simplement net.mptcp.enabled=0

Désactiver MPTCP supprime la condition préalable du seul exploit publié, pas la faille. Les écouteurs TCP simples passent toujours par le même code vulnérable. Sur un serveur sans écouteurs MPTCP (ss -Mlnp n'affiche rien), le sysctl ne change absolument rien. C'est un ajout inoffensif, pas un substitut à cette règle.

Validation

Télécharger l’outil