Vulnérabilité à distance dans la pile OpenBSD IPv6

Dans le processus d'arrière-plan slaacd, responsable de la configuration automatique des adresses IPv6 (IPv6 Stateless Address Autoconfiguration, RFC 4862) dans OpenBSD, une vulnérabilité a été identifiée qui entraîne un débordement de tampon lors de la réception d'une annonce de routeur IPv6 spécialement conçue (RA, Router Advertisement). .

Initialement, la fonctionnalité de configuration automatique des adresses IPv6 était implémentée au niveau du noyau, mais à partir d'OpenBSD 6.2, elle a été déplacée vers un processus slaacd non privilégié distinct. Ce processus est chargé d'envoyer des messages RS (Router Solicitation) et d'analyser les réponses RA (Router Advertisement) avec des informations sur les paramètres du routeur et de la connexion réseau.

En février, slaacd a corrigé un bug qui le faisait planter si 7 serveurs étaient spécifiés dans la liste RDNSS (Recursive DNS Servers). Cet oubli a attiré l'attention de chercheurs indépendants qui ont tenté d'examiner le code slaacd pour détecter d'autres erreurs qui se produisent lors de l'analyse des champs dans les messages RA. L'analyse a montré qu'il existe un autre problème dans le code, qui se manifeste lors du traitement du champ DNSSL (DNS Search List), qui comprend des listes de noms de domaine et des modèles d'hôtes pour DNS.

Chaque nom de la liste DNSSL est codé à l'aide d'un délimiteur nul et de balises intermédiaires d'un octet qui déterminent la taille des données qui suivent. La vulnérabilité est due au fait que dans le code d'analyse de liste, un champ avec une taille est copié dans une variable de type entier signé (« len = data[pos] »). Ainsi, si une valeur est spécifiée dans le champ avec le bit de poids fort défini, cette valeur sera perçue dans l'opérateur conditionnel comme un nombre négatif et la vérification de la taille maximale autorisée (« si (len > 63 || len + pos + 1 > datalen) {“) ne fonctionnera pas, ce qui entraînera un appel à memcpy avec un paramètre dont la taille des données copiées dépasse la taille du tampon.

Vulnérabilité à distance dans la pile OpenBSD IPv6
Vulnérabilité à distance dans la pile OpenBSD IPv6


Source: opennet.ru

Ajouter un commentaire