Une vulnérabilité (CVE-2022-0435) a été identifiée dans le module noyau Linux, responsable du fonctionnement du protocole réseau TIPC (Transparent Inter-process Communication), qui pourrait potentiellement permettre l'exécution de code à niveau noyau via l'envoi d'un paquet réseau spécialement conçu. Ce problÚme concerne uniquement les systÚmes avec le module noyau tipc.ko chargé et une pile TIPC configurée, généralement utilisée dans des clusters et qui n'est pas activée par défaut dans les distributions Linux non spécialisées.
Il est Ă noter qu'en construisant le noyau en mode « CONFIG_FORTIFY_SRC=y » (utilisĂ© dans RHEL), qui ajoute des vĂ©rifications supplĂ©mentaires des limites dans la fonction memcpy(), l'exploitation se limite Ă un arrĂȘt d'urgence (le noyau entre dans un Ă©tat de panique). Lorsqu'elle est effectuĂ©e sans vĂ©rifications supplĂ©mentaires et en cas de fuite d'informations sur les Ă©tiquettes de canaries utilisĂ©es pour protĂ©ger la pile, le problĂšme peut ĂȘtre utilisĂ© pour exĂ©cuter du code Ă distance avec les privilĂšges du noyau. Les chercheurs ayant identifiĂ© le problĂšme dĂ©clarent que la technique d'exploitation est triviale et sera rĂ©vĂ©lĂ©e aprĂšs l'Ă©limination universelle de la vulnĂ©rabilitĂ© dans les distributions.
La vulnĂ©rabilitĂ© est causĂ©e par un dĂ©passement de pile lors du traitement des paquets, lorsque la valeur du champ contenant le nombre de nĆuds participants de domaine, excĂšde 64. Pour stocker les paramĂštres des nĆuds dans le module tipc.ko, un tableau fixe « u32 members[64] » est utilisĂ©, mais lors du traitement du numĂ©ro de nĆud spĂ©cifiĂ© dans le paquet, aucune vĂ©rification de la valeur « member_cnt » n'est effectuĂ©e, ce qui permet d'utiliser des valeurs supĂ©rieures Ă 64 pour réécrire de maniĂšre contrĂŽlĂ©e des donnĂ©es dans la zone mĂ©moire suivante de la pile aprĂšs la structure « dom_bef ».
L'erreur à l'origine de la vulnérabilité a été introduite le 15 juin 2016 et a été intégrée dans le noyau Linux 4.8. La vulnérabilité a été corrigée dans les versions du noyau Linux 5.16.9, 5.15.23, 5.10.100, 5.4.179, 4.19.229, 4.14.266 et 4.9.301. Dans les noyaux de la plupart des distributions, le problÚme reste actuellement non corrigé : RHEL, Debian, Ubuntu, SUSE, Fedora, Gentoo, Arch Linux.
Le protocole TIPC a Ă©tĂ© initialement dĂ©veloppĂ© par Ericsson et est conçu pour organiser l'interaction entre processus dans un cluster. Il s'active principalement sur les nĆuds des clusters. TIPC peut fonctionner Ă la fois sur Ethernet et sur UDP (port rĂ©seau 6118). En cas de fonctionnement sur Ethernet, une attaque peut ĂȘtre effectuĂ©e depuis le rĂ©seau local, tandis qu'avec UDP, cela peut ĂȘtre fait depuis le rĂ©seau global, si le port n'est pas protĂ©gĂ© par un pare-feu. Une attaque peut Ă©galement ĂȘtre rĂ©alisĂ©e par un utilisateur local non privilĂ©giĂ© de l'hĂŽte. Pour activer TIPC, le module du noyau tipc.ko doit ĂȘtre chargĂ© et la liaison avec l'interface rĂ©seau doit ĂȘtre configurĂ©e Ă l'aide de netlink ou de l'outil tipc.
Source : opennet.ru
