Vigil@nce : BIND 9, déni de service via la récursivité
décembre 2011 par Vigil@nce
Ce bulletin a été rédigé par Vigil@nce : http://vigilance.fr/offre
SYNTHÈSE DE LA VULNÉRABILITÉ
Un attaquant peut employer une requête illicite sur un serveur DNS
BIND récursif, ayant une valeur invalide dans son cache, afin de
le stopper.
– Gravité : 2/4
– Date création : 16/11/2011
– Date révision : 17/11/2011
PRODUITS CONCERNÉS
– Debian Linux
– Fedora
– IBM AIX
– ISC BIND
– Mandriva Enterprise Server
– Mandriva Linux
– Novell Linux Desktop
– OpenSolaris
– OpenSUSE
– Oracle Solaris
– Oracle Trusted Solaris
– Red Hat Enterprise Linux
– SUSE Linux Enterprise Server
DESCRIPTION DE LA VULNÉRABILITÉ
Le serveur DNS BIND peut être configuré en mode récursif, afin de
résoudre les adresses externes demandées par les clients internes.
Les réponses des serveurs DNS externes sont gardées en cache, et
ce cache est ensuite interrogé pour répondre aux futures requêtes.
Le protocole DNSSEC permet d’authentifier les données des zones
DNS. Les enregistrements NSEC et NSEC3 sont utilisés pour indiquer
qu’un nom n’existe pas (NXDOMAIN, Non-Existent Domain, NX). Ces
enregistrements n’ont donc pas de données (rdata) associées.
Un attaquant peut (par un moyen non déterminé) forcer le cache
d’un serveur DNS récursif à contenir un enregistrement NX avec des
rdata. Ensuite, lorsque le client demande cet enregistrement, la
fonction query_addadditional2() du fichier query.c appelle la
macro INSIST(!dns_rdataset_isassociated(sigrdataset)), car un
rdata est associé à enregistrement NX. La macro INSIST stoppe le
démon.
Pour mettre en oeuvre cette vulnérabilité, l’attaquant peut être
sur le réseau interne, et demander une résolution invalide. Il
peut aussi créer un document HTML contenant des images situées sur
un serveur portant un nom illicite, puis inviter la victime à
consulter cette page HTML. Il peut aussi envoyer un email
provenant d’un nom de serveur illicite, qui sera résolu par le
serveur de messagerie.
Un attaquant peut donc employer une requête illicite sur un
serveur DNS BIND récursif, ayant une valeur invalide dans son
cache, afin de le stopper.
ACCÈS AU BULLETIN VIGIL@NCE COMPLET
http://vigilance.fr/vulnerabilite/BIND-9-deni-de-service-via-la-recursivite-11162