Vulnérabilité à distance dans le noyau Linux qui se produit lors de l'utilisation du protocole TIPC

Une vulnérabilité (CVE-2022-0435) a été identifiée dans le module du noyau Linux qui assure le fonctionnement du protocole réseau TIPC (Transparent Inter-process Communication), permettant potentiellement d'exécuter du code au niveau du noyau en envoyant un réseau spécialement conçu paquet. Le problème n'affecte que les systèmes sur lesquels le module de noyau tipc.ko est chargé et la pile TIPC configurée, qui est généralement utilisée dans les clusters et n'est pas activée par défaut sur les distributions Linux non spécialisées.

Il est à noter que lors de la construction du noyau en mode "CONFIG_FORTIFY_SRC=y" (utilisé dans RHEL), qui ajoute des contrôles de limites supplémentaires à la fonction memcpy(), le fonctionnement est limité à un arrêt d'urgence (le noyau panique). S'il est exécuté sans vérifications supplémentaires et si des informations sur les balises Canary utilisées pour protéger la pile sont divulguées, le problème peut être exploité pour l'exécution de code à distance avec les droits du noyau. Les chercheurs qui ont identifié le problème affirment que la technique d'exploitation est triviale et qu'elle sera divulguée après l'élimination généralisée de la vulnérabilité dans les distributions.

La vulnérabilité est causée par un débordement de pile qui se produit lors du traitement des paquets, la valeur du champ avec le nombre de nœuds membres du domaine dans lequel dépasse 64. Pour stocker les paramètres de nœud dans le module tipc.ko, un tableau fixe « u32 membres[64 ]” est utilisé, mais dans le processus de traitement du spécifié dans le paquet, le numéro de nœud ne vérifie pas la valeur de "member_cnt", ce qui permet d'utiliser des valeurs supérieures à 64 pour l'écrasement contrôlé des données dans la zone mémoire suivante à la structure "dom_bef" sur la pile.

Le bug à l'origine de cette vulnérabilité a été introduit le 15 juin 2016 et a été inclus dans le noyau Linux 4.8. La vulnérabilité a été corrigée dans les versions 5.16.9, 5.15.23, 5.10.100, 5.4.179, 4.19.229, 4.14.266 et 4.9.301 du noyau Linux. Dans les noyaux de la plupart des distributions, le problème reste non résolu : RHEL, Debian, Ubuntu, SUSE, Fedora, Gentoo, Arch Linux.

Le protocole TIPC a été initialement développé par Ericsson, conçu pour organiser la communication inter-processus dans un cluster et est activé principalement sur les nœuds du cluster. TIPC peut fonctionner sur Ethernet ou UDP (port réseau 6118). En travaillant sur Ethernet, l'attaque peut être menée depuis le réseau local, et en UDP, depuis le réseau global si le port n'est pas couvert par un pare-feu. L'attaque peut également être menée par un utilisateur local non privilégié de l'hébergeur. Pour activer TIPC, vous devez télécharger le module du noyau tipc.ko et configurer la liaison à l'interface réseau à l'aide de netlink ou de l'utilitaire tipc.

Source: opennet.ru

Ajouter un commentaire