Translated message

A translation of this page exists in English.

Warning message

This translation is outdated. For the most up-to-date information, please refer to the English version.

Défaut de sécurité critique : glibc stack-based buffer overflow in getaddrinfo() (CVE-2015-7547)

Le paquet glibc contient des bibliothèques standard utilisées par plusieurs programmes sur le système. Pour économiser de l'espace disque et de la mémoire, et afin de faciliter les mises à niveaux, un code de système commun est préservé à un seul emplacement et partagé entre les programmes. Ce paquet contient la bibliothèque C standard à laquelle tous les programmes GNU/Linux sont liés. La bibliothèque libresolv contenue dans glibc fournit des fonctions permettant une traduction entre les noms d'hôtes et adresses IP. nss_dns est le composant glibc fournissant le module de service Name Service Switch (NSS) utilisant libresolv pour effectuer les recherches DNS.

Background

Un dépassement de la mémoire tampon de pile a été trouvé dans libresolv dans le code effectuant les requêtes DNS A/AAAA. Une personne malveillante à distance pourrait créer des réponses DNS spécialement conçues pouvant entraîner un incident de libresolv ou potentiellement exécuter un code avec les permissions de l'utilisateur exécutant la bibliothèque. Ce dépassement se déroule dans la fonction send_dg (pour les requêtes UDP) et send_vc (pour les requêtes TCP) dans libresolv. Ce problème est uniquement exposé lorsque libresolv est appelé par le module de service NSS nss_dns. Ce flux a été attribué CVE-2015-7547.

Les applications qui appellent getaddrinfo avec la famille d'adresses AF_UNSPEC sont affectées, sauf sur Red Hat Enterprise Linux 6.4, où les applications sont également affectées si elles utilisent la famille d'adresses AF_INET6. Les applications qui n'utilisent que les anciennes fonctions gethostbyname ou fonctions libresolv telles que res_search (et non pas getaddrinfo) ne sont pas affectées.

Ce problème n'affecte pas la version de glibc contenue dans Red Hat Enterprise Linux 5 ou version antérieure. Ce problème affectait les versions de glibc contenues dans Red Hat Enterprise Linux 6 et 7.

Impact

Ce problème est considéré Critique par Red Hat Product Security.

Mitigation

Dans une configuration libresolv par défaut, le vecteur UDP est atténué en utilisant un solveur DNS conforme au protocole sur un réseau connu. Un solveur conforme ne produira pas des réponses surdimensionnées nécessaires pour exploiter cette vulnérabilité car par défaut, le solveur le solveur glibc n'active pas EDNS0 et ne requiert pas de larges réponses.

Le vecteur basé sur TCP peut être atténué par un solveur récursif de confiance sur un réseau de confiance qui limite la taille des réponses DNS individuelles à 1023 octets maximum. Cela n'est pas courant dans les implémentations de solveur DNS car le protocole DNS pourrait en être rompu. (L'option de configuration de la taille du tampon offerte par la plupart des solveurs s'applique uniquement à UDP, pas TCP.) Le rejet des réponses AAAA, dans limiter la taille des réponses A, n'atténue pas la vulnérabilité.

La désactivation du support IPv6 sur les systèmes affectés n'atténue pas la vulnérabilité car les recherches A/AAAA sont effectuées même si le système manque de support IPv6.

Produits affectés et résolutions

Toutes les versions du paquet glibc fourni dans Red Hat Enterprise Linux 6 et 7, sont affectées par cette faille. Consultez le tableau ci-dessous pour des liens sur les avis de sécurité respectifs qui puissent résoudre ce problème :

Résolution

Product Advisory
Red Hat Enterprise Linux 6 RHSA-2016:0175
Red Hat Enterprise Linux 7 RHSA-2016:0176
Red Hat Enterprise Linux 6.2 Advanced Update Support RHSA-2016:0225
Red Hat Enterprise Linux 6.4 Advanced Update Support RHSA-2016:0225
Red Hat Enterprise Linux 6.5 Advanced Update Support RHSA-2016:0225
Red Hat Enterprise Linux 6.6 Extended Update Support RHSA-2016:0225
Red Hat Enterprise Linux 7.1 Extended Update Support RHSA-2016:0225


Une fois la mise à jour effectuée, vous devez redémarrer le système ou redémarrer les services affectés :

Cette vulnérabilité affecte un grand nombre d'applications sur le système. La méthode la plus sûre de vous assurer que chaque application utilise les paquets glibc mis à jour est de redémarrer le système.

Si vous ne pouvez pas redémarrer le système entier après les mises à jour, exécutez la commande suivante pour afficher les processus en exécution (ne comprend pas uniquement les services) utilisant toujours l'ancienne version de glibc sur votre système.

lsof +c0 -d DEL | awk 'NR==1 || /libc-/ {print $2,$1,$4,$NF}' | column -t

À partir de la liste de résultats, identifier les services publics et redémarrez-les. Cette solution est uniquement temporaire et n'est pas prise en charge par Red Hat. En cas de problème, il vous sera demandé de redémarrer le système avant de lancer toute résolution de problème.

FAQ

1. SELinux bloque-t-il cette faille de sécurité ?
Une politique SELinux appropriée peut contenir certains dommages causés par une personne malveillante et restreindre leur accès au système, mais DNS est utilisé par un grand nombre d'applications et composants de système, les politiques SELinux offrent par conséquent une protection limitée contre ce problème.

2. Un solveur DNS de confiance protège-t-il contre ce problème ?
Un solveur de confiance dans une configuration conforme au protocole par défaut ne peut pas atténuer ce problème car certaines exploitations peuvent entraîner des réponses DNS syntaxiquement bien formées.

3. Are statically-linked binaries affected by this flaw?
Red Hat ne prend pas en charge la liaison statique de glibc. Cependant, si des clients ont créé des applications liées statiquement à l'aide du paquet glibc-static, ces applications continueront à utiliser les copies de système de nss_dns et libresolv, et l'installation des paquets glibc mis à jour résoudra la vulnérabilité.

Remerciements

Cette vulnérabilité à été découverte par l'équipe Google Security et Red Hat

Comments