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
dnsmasq-cve-2026 — Outil automatisé de vérification de défauts pour 6 CVEs de dnsmasq (CVE-2026-2291, 4890, 4891, 4892, 4893, 5172) | Kitploit
Outils/GitHubGitHub/jianrongxiao-linksys/dnsmasq-cve-2026
Analyse des VulnérabilitésExploitationFuzzingSécurité RéseauTests d'IntrusionAnalyse de BinairesAnalyse DNS
GitHubjianrongxiao-linksys/dnsmasq-cve-2026

dnsmasq-cve-2026

Outil automatisé de vérification de défauts pour 6 CVEs de dnsmasq (CVE-2026-2291, 4890, 4891, 4892, 4893, 5172)

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

Outil de vérification QA pour les CVE-2026 de dnsmasq

Outil automatisé en boîte noire pour vérifier 6 vulnérabilités de dnsmasq (mai 2026). Envoie des paquets d'attaque à un DUT en direct et rapporte RÉUSSI / ÉCHEC — aucun accès au code source nécessaire.

Démarrage rapide

# Configurer le DNS du DUT sur l'IP WAN de votre laptop via l'interface graphique d'abord, puis :
sudo python3 dnsmasq_cve_verify.py --laptop <VOTRE_IP_WAN> --dut <IP_LAN_DUT> --dut-pass <MOT_DE_PASSE_SSH>

# Exemple :
sudo python3 dnsmasq_cve_verify.py --laptop 10.0.0.211 --dut 192.168.1.1 --dut-pass '12345Asdf@'

CVE testées

CVECVSSTypeVecteur d'attaqueFonctionnalité affectée
CVE-2026-22919.2Débordement de tas (heap)À distanceextract_name() — toujours active
CVE-2026-51727.5Lecture hors limites / plantageÀ distanceextract_addresses() — toujours active
CVE-2026-48907.5Boucle infinie DoSÀ distanceAnalyse bitmap NSEC (--dnssec)
CVE-2026-48915.3Lecture hors limites du tasÀ distanceValidation RRSIG (--dnssec)
CVE-2026-48928.4Débordement de tas → rootLocal/AdjacentCLID DHCPv6 (--dhcp-script + DHCPv6)
CVE-2026-48935.3Contournement de validationÀ distanceVérification source ECS (--add-subnet)

Fonctionnement de chaque test

CVE-2026-2291 (Critique — Débordement de tas dans extract_name)

Cause racine : union bigname déclare char name[MAXDNAME] mais les caractères échappés peuvent étendre un nom à 2*MAXDNAME+1 octets, provoquant un débordement de tas.

Méthode de test : Envoie des requêtes DNS contenant des noms de domaine avec des caractères à bit haut (0x80+) qui sont échappés en \DDD en interne (4 octets par octet d'entrée). Si dnsmasq plante ou cesse de répondre, il est vulnérable.

Comportement corrigé : Rejette les noms surdimensionnés correctement (FORMERR/REFUSED) ou utilise un tampon agrandi.

CVE-2026-5172 (Élevé — Lecture hors limites dans extract_addresses)

Cause racine : Le champ rdlen falsifié permet à extract_name() d'avancer le pointeur au-delà de la fin de l'enregistrement. Un sous-dépassement des octets restants produit une valeur énorme → lecture hors limites massive → plantage.

Méthode de test : Envoie des réponses DNS avec des enregistrements CNAME où rdlen est plus petit que le nom encodé réel. Si dnsmasq plante, il est vulnérable.

Comportement corrigé : Valide que le pointeur reste dans la limite déclarée de rdlen après extract_name().

CVE-2026-4890 (Élevé — Boucle infinie DNSSEC NSEC)

Cause racine : L'analyse du bitmap de type NSEC avance de p[1] au lieu de p[1]+2 (taille d'en-tête de fenêtre manquante). Avec bitmap_length=0, le pointeur n'avance jamais → boucle infinie.

Méthode de test : Envoie un enregistrement NSEC forgé avec window=0, bitmap_length=0. Si dnsmasq cesse de répondre à TOUTES les requêtes (bloque, ne plante pas), il est vulnérable. Exploitable AVANT la validation RRSIG.

Comportement corrigé : Avance de p[1]+2 et ignore les bitmaps de longueur nulle.

CVE-2026-4891 (Modéré — Lecture hors limites du tas RRSIG)

Cause racine : rdlen dans RRSIG n'est pas validé par rapport à la taille minimale (18 + nom du signataire). La longueur calculée de la signature sous-dépasse en négatif → traitée comme énorme → lecture hors limites.

Méthode de test : Envoie des enregistrements RRSIG avec rdlen=10 (bien en dessous du minimum de 31+ octets). Plantage = vulnérable.

Comportement corrigé : Valide rdlen >= fixed_fields + signer_name_length avant de calculer la longueur de la signature.

CVE-2026-4892 (Élevé — Root local via CLID DHCPv6)

Cause racine : Les CLID DHCPv6 (jusqu'à 65535 octets) sont encodés en hexadécimal via sprintf("%.2x") dans daemon->packet (5131 octets). CLID de 3000 octets → chaîne hexa de 6000 octets → débordement. Le processus auxiliaire s'exécute en tant que root.

Méthode de test : Envoie SOLICIT DHCPv6 avec un identifiant client de 3000 octets. Nécessite une adjacence IPv6 et --dhcp-script configuré. Plantage du processus auxiliaire = vulnérable.

Comportement corrigé : Tronque ou valide la longueur du CLID avant l'encodage hexadécimal.

Remarque : Certaines compilations utilisent -DNO_DHCP6 et ne sont PAS affectées par cette CVE.

CVE-2026-4893 (Modéré — Contournement de validation source ECS)

Cause racine : process_reply() passe la longueur de l'enregistrement OPT (~23 octets) au lieu de la longueur totale du paquet à check_source(). Toutes les vérifications de limites échouent → la fonction retourne toujours 1 (valide).

Méthode de test : Envoie des requêtes DNS avec l'option EDNS Client Subnet contenant des préfixes source usurpés. Si dnsmasq renvoie ECS sans validation, il est vulnérable.

Comportement corrigé : Passe la longueur totale du paquet à check_source(), permettant des vérifications de limites appropriées conformément à la RFC 7871 Section 9.2.

Correction

Mettez à niveau vers dnsmasq 2.92rel2 (recommandé)

  • Source : https://thekelleys.org.uk/dnsmasq/dnsmasq-2.92rel2.tar.xz
  • Correctifs en amont : https://thekelleys.org.uk/dnsmasq/CVE/

Outil automatisé de vérification des défauts (dnsmasq_cve_verify.py)

L'outil QA principal. S'exécute sur le laptop de test, envoie des paquets d'attaque au DUT, et rapporte clairement RÉUSSI/ÉCHEC pour chaque CVE. Aucune modification du DUT n'est nécessaire au-delà d'un accès SSH en lecture seule pour l'inspection de l'état.

Topologie réseau

┌─────────────────────────────────────────────────────────────────────┐
│                   Laptop de test                                    │
│                                                                      │
│   Interface LAN                 Interface WAN                        │
│   <IP_LAN_LAPTOP>               <IP_WAN_LAPTOP>                     │
│        │                               │                            │
│        │                          ┌────┴──────────────┐             │
│        │                          │ Serveur DNS       │             │
│        │                          │ malveillant       │             │
│        │                          │ (port 53)         │             │
│        │                          └────┬──────────────┘             │
│        │                               │                            │
└────────┼───────────────────────────────┼────────────────────────────┘
         │ Sous-réseau LAN               │ Sous-réseau WAN
         │                               │
┌────────┼───────────────────────────────┼────────────────────────────┐
│        │                               │                            │
│   LAN : <IP_LAN_DUT>            WAN : <IP_WAN_DUT>                  │
│   (passerelle LAN)               (liaison montante WAN)             │
│                                                                      │
│              DUT (Routeur Linksys)                                   │
│              dnsmasq (toute version < 2.92rel2)                     │
│                                                                      │
│   resolv-file=/etc/resolv.conf                                      │
│   → nameserver <IP_WAN_LAPTOP>  ← défini via GUI, nous transfère   │
│                                                                      │
└─────────────────────────────────────────────────────────────────────┘
Télécharger l’outil