Les groupes de recherche Forescout Research Labs et JSOF Research ont publié les résultats d'une étude conjointe sur la sécurité de diverses mises en œuvre de schémas de compression utilisés pour empaqueter des noms répétitifs dans des messages DNS, mDNS, DHCP et RA IPv6 (emballage de parties dupliquées de domaines dans des messages contenant plusieurs noms). Au cours de cette étude, neuf vulnérabilités ont été identifiées, regroupées sous le nom de CODE_NAME:WRECK.
Des problèmes ont été identifiés dans FreeBSD, ainsi que dans les sous-systèmes réseau IPnet, Nucleus NET et NetX, qui sont largement utilisés dans les systèmes d'exploitation en temps réel VxWorks, Nucleus et ThreadX, utilisés dans des dispositifs d'automatisation, des stockage, des appareils médicaux, de l'avionique, des imprimantes et de l'électronique grand public. Il est estimé que ces vulnérabilités affectent au moins 100 millions de dispositifs.
- Une vulnérabilité dans FreeBSD (CVE-2020-7461) permettait l'exécution de code malveillant par l'envoi d'un paquet DHCP spécialement conçu par un attaquant se trouvant sur le même réseau local que la victime, le traitement de ce paquet par un client DHCP vulnérable entraînant un débordement de tampon. Le problème était atténué par le fait que le processus dhclient, dans lequel la vulnérabilité résidait, s'exécutait avec des privilèges réduits dans un environnement isolé Capsicum, ce qui nécessitait l'identification d'une autre vulnérabilité pour en sortir.
L'origine de l'erreur réside dans la vérification incorrecte des paramètres dans le paquet retourné par le serveur DHCP contenant l'option 119 DHCP, qui permet de transmettre une liste 'domain search' au résolveur. Un calcul incorrect de la taille du tampon nécessaire pour contenir les données décompressées. complets, conduisait à un écriture d'informations contrôlées par l'attaquant en dehors du tampon alloué. Dans FreeBSD, le problème a été corrigé en septembre de l'année dernière. Ce problème ne peut être exploité que par un accès au réseau local.
- Une vulnérabilité dans la pile réseau embarquée IPnet, utilisée dans le RTOS VxWorks, permet potentiellement d'exécuter du code du côté du client DNS en raison d'un traitement incorrect de la compression des messages DNS. Il s'avère que cette vulnérabilité a été initialement détectée par la société Exodus en 2016, mais n'a jamais été corrigée. La nouvelle demande adressée à la société Wind River est également restée sans réponse et les dispositifs utilisant IPnet restent vulnérables.
- Dans la pile TCP/IP Nucleus NET, supportée par Siemens, six vulnérabilités ont été identifiées, dont deux pourraient permettre l'exécution à distance de code et quatre pourraient entraîner une déni de service. Le premier problème critique est lié à une erreur lors du décompactage des messages DNS compressés, tandis que le second concerne l'analyse incorrecte des étiquettes de noms de domaine. Les deux problèmes entraînent un débordement de tampon lors du traitement de réponses DNS spécialement conçues.
Pour exploiter ces vulnérabilités, un attaquant n'a qu'à envoyer une réponse spécialement formatée à toute demande légitime émanant d'un appareil vulnérable, par exemple, en menant une attaque MITM et en s'immisçant dans le trafic entre le serveur DNS et la victime. Si l'attaquant a accès au réseau local, il peut initier un serveur DNS qui tente d'attaquer les appareils vulnérables en diffusant des requêtes mDNS en mode broadcast.
- La vulnérabilité dans la pile réseau NetX (Azure RTOS NetX), développée pour le système d'exploitation temps réel ThreadX et ouverte en 2019 après être passée sous la coupe de Microsoft, est limitée à un déni de service. Le problème est causé par une erreur d'analyse des messages DNS compressés dans l'implémentation du résolveur.
Parmi les piles réseau vérifiées où aucune vulnérabilité liée à la compression des données répétées dans les messages DNS n'a été trouvée, on cite les projets lwIP, Nut/Net, Zephyr, uC/TCP-IP, FreeRTOS+TCP, OpenThread et FNET. Les deux premiers (Nut/Net et lwIP) ne supportent pas la compression dans les messages DNS, tandis que les autres réalisent cette opération sans erreurs. De plus, il est noté que les mêmes chercheurs avaient déjà identifié des vulnérabilités similaires dans les piles Treck, uIP et PicoTCP.
Source : opennet.ru
