Vulnérabilité racine exploitable à distance dans l'utilitaire ping inclus avec FreeBSD

Dans FreeBSD, une vulnérabilité (CVE-2022-23093) a été identifiée dans l'utilitaire ping inclus dans la distribution de base. Le problème pourrait potentiellement conduire à l’exécution de code à distance avec les privilèges root lors d’un ping sur un hôte externe contrôlé par un attaquant. Un correctif a été fourni dans les mises à jour FreeBSD 13.1-RELEASE-p5, 12.4-RC2-p2 et 12.3-RELEASE-p10. Il n'est pas encore clair si d'autres systèmes BSD sont affectés par la vulnérabilité identifiée (il n'y a pas encore de rapports de vulnérabilités dans NetBSD, DragonFlyBSD et OpenBSD).

La vulnérabilité est causée par un débordement de tampon dans le code d'analyse des messages ICMP reçus en réponse à une demande de vérification. Le code pour envoyer et recevoir des messages ICMP dans ping utilise des sockets bruts et est exécuté avec des privilèges élevés (l'utilitaire est livré avec l'indicateur racine setuid). La réponse est traitée côté ping via la reconstruction des en-têtes IP et ICMP des paquets reçus du socket brut. Les en-têtes IP et ICMP sélectionnés sont copiés dans des tampons par pr_pack(), sans tenir compte du fait que des en-têtes étendus supplémentaires peuvent être présents dans le paquet après l'en-tête IP.

Ces en-têtes sont extraits du paquet et inclus dans le bloc d'en-tête, mais ne sont pas pris en compte lors du calcul de la taille du tampon. Si l'hôte, en réponse à une requête ICMP envoyée, renvoie un paquet avec des en-têtes supplémentaires, leur contenu sera écrit dans une zone au-delà de la limite du tampon sur la pile. En conséquence, un attaquant peut écraser jusqu'à 40 octets de données sur la pile, permettant potentiellement à son code de s'exécuter. La gravité du problème est atténuée par le fait qu'au moment où l'erreur se produit, le processus est dans un état d'isolation des appels système (mode capacité), ce qui rend difficile l'accès au reste du système après avoir exploité la vulnérabilité. .

Source: opennet.ru

Ajouter un commentaire