Des informations ont récemment été publiées concernant l' identification de sept vulnérabilités dans le paquet Dnsmasq, qui combine un résolveur DNS avec cache et un serveur DHCP, nom de code DNSpooq. Ces failles permettent des attaques par usurpation de cache DNS ou des dépassements de tampon pouvant conduire à l'exécution de code à distance par un attaquant.
Bien que Dnsmasq soit désormais obsolète en tant que résolveur DNS par défaut dans les distributions Linux standard, il reste utilisé sous Android et dans des distributions spécialisées comme OpenWrt et DD-WRT, ainsi que dans le firmware de nombreux routeurs sans fil. Dans les distributions standard, son utilisation implicite est possible ; par exemple, avec libvirt, il peut être lancé pour fournir un service DNS aux machines virtuelles ou activé via les paramètres du configurateur NetworkManager.
Étant donné que la culture de la mise à jour des routeurs sans fil laisse à désirer, les chercheurs craignent que les problèmes identifiés ne restent pas résolus pendant longtemps et ne deviennent la cible d'attaques automatisées visant à prendre le contrôle des routeurs ou à rediriger les utilisateurs vers de faux sites malveillants.
Environ 40 entreprises utilisent Dnsmasq , notamment Cisco, Comcast, Netgear, Ubiquiti, Siemens, Arista, Technicolor, Aruba, Wind River, Asus, AT&T, D-Link, Huawei, Juniper, Motorola, Synology, Xiaomi, ZTE et Zyxel. Il est déconseillé aux utilisateurs de ces appareils d'utiliser le service de redirection de requêtes DNS intégré.
La première partie des vulnérabilités découvertes dans Dnsmasq concerne la protection contre les attaques d'empoisonnement du cache DNS, basée sur une méthode proposée en 2008 par Dan Kaminsky.
Les vulnérabilités identifiées rendent inefficaces les protections existantes et permettent d'usurper l'adresse IP d'un domaine quelconque dans le cache. La méthode de Kaminsky exploite la taille négligeable du champ d'identification de la requête DNS, qui ne comporte que 16 bits.
Pour trouver l'identifiant permettant d'usurper le nom d'hôte, il suffit d'envoyer environ 7 000 requêtes et de simuler près de 140 000 fausses réponses. L'attaque consiste à envoyer un grand nombre de paquets falsifiés, associés à des adresses IP, au résolveur DNS avec différents identifiants de transaction DNS.
Les vulnérabilités identifiées réduisent le niveau d'entropie attendu de 32 bits à une exigence de devinette de 19 bits, rendant une attaque par empoisonnement du cache tout à fait réaliste. De plus, la gestion des enregistrements CNAME par dnsmasq lui permet de falsifier la chaîne d'enregistrement CNAME, usurpant ainsi efficacement jusqu'à neuf enregistrements DNS simultanément.
- CVE-2020-25684 : absence de validation de l'ID de demande en combinaison avec l'adresse IP et le numéro de port lors du traitement des réponses DNS provenant de serveurs externes. Ce comportement est incompatible avec la RFC-5452, qui nécessite l'utilisation d'attributs de demande supplémentaires lors de la mise en correspondance d'une réponse.
- CVE-2020-25686 : Échec de la validation des demandes en attente avec le même nom, permettant l'utilisation de la méthode anniversaire pour réduire considérablement le nombre de tentatives nécessaires pour forger une réponse. En combinaison avec la vulnérabilité CVE-2020-25684, cette fonctionnalité peut réduire considérablement la complexité de l'attaque.
- CVE-2020-25685 : utilisation d'un algorithme de hachage CRC32 non fiable lors de la vérification des réponses, en cas de compilation sans DNSSEC (SHA-1 est utilisé avec DNSSEC). La vulnérabilité pourrait être utilisée pour réduire considérablement le nombre de tentatives en vous permettant d'exploiter des domaines qui ont le même hachage CRC32 que le domaine cible.
- Le deuxième ensemble de problèmes (CVE-2020-25681, CVE-2020-25682, CVE-2020-25683 et CVE-2020-25687) est causé par des erreurs qui provoquent des débordements de tampon lors du traitement de certaines données externes.
- Pour les vulnérabilités CVE-2020-25681 et CVE-2020-25682, il est possible de créer des exploits qui pourraient conduire à l'exécution de code sur le système.
Enfin, il est mentionné que les vulnérabilités sont corrigées dans la mise à jour Dnsmasq 2.83 et, comme solution de contournement, il est recommandé de désactiver DNSSEC et la mise en cache des requêtes à l'aide des options de ligne de commande.
Source : https://kb.cert.org