Vulnérabilité dans la pile IPv6 du noyau Linux permettant l'exécution de code à distance

Des informations ont été divulguées sur la vulnérabilité CVE-2023-6200) dans la pile réseau du noyau Linux, qui, dans certaines circonstances, permet à un attaquant d'un réseau local d'exécuter son code en envoyant un paquet ICMPv6 spécialement conçu avec un message RA (Router Advertisement) destiné à annoncer des informations sur le routeur.

La vulnérabilité ne peut être exploitée qu'à partir du réseau local et apparaît sur les systèmes avec le support IPv6 activé et le paramètre sysctl « net.ipv6.conf.<network_interface_name>.accept_ra » actif (peut être vérifié avec la commande « sysctl net.ipv6.conf | grep accept_ra") , qui est désactivé par défaut dans RHEL et Ubuntu pour les interfaces réseau externes, mais activé pour l'interface de bouclage, qui permet une attaque depuis le même système.

La vulnérabilité est causée par une condition de concurrence critique lorsque le garbage collector traite des enregistrements fib6_info périmés, ce qui peut conduire à l'accès à une zone mémoire déjà libérée (use-after-free). Lors de la réception d'un paquet ICMPv6 avec un message d'annonce de routeur (RA, Router Advertisement), la pile réseau appelle la fonction ndisc_router_discovery() qui, si le message RA contient des informations sur la durée de vie de la route, appelle la fonction fib6_set_expires() et remplit le gc_link structure. Pour nettoyer les entrées obsolètes, utilisez la fonction fib6_clean_expires(), qui détache l'entrée dans gc_link et efface la mémoire utilisée par la structure fib6_info. Dans ce cas, il y a un certain moment où la mémoire de la structure fib6_info a déjà été libérée, mais le lien vers celle-ci continue d'être dans la structure gc_link.

La vulnérabilité est apparue à partir de la branche 6.6 et a été corrigée dans les versions 6.6.9 et 6.7. L'état de la correction de la vulnérabilité dans les distributions peut être évalué sur ces pages : Debian, Ubuntu, SUSE, RHEL, Fedora, Arch Linux, Gentoo, Slackware. Parmi les distributions qui livrent des paquets avec le noyau 6.6, on peut noter Arch Linux, Gentoo, Fedora, Slackware, OpenMandriva et Manjaro ; dans d'autres distributions, il est possible que la modification avec une erreur soit rétroportée dans les paquets avec des branches de noyau plus anciennes (par exemple Par exemple, dans Debian, il est mentionné que le paquet avec le noyau 6.5.13 est vulnérable, alors que le changement problématique est apparu dans la branche 6.6). Comme solution de sécurité, vous pouvez désactiver IPv6 ou définir les paramètres « net.ipv0.conf.*.accept_ra » sur 6.

Source: opennet.ru

Ajouter un commentaire