Découverte d'une vulnérabilité dans l'implémentation TIPC du noyau Linux

Récemment, la nouvelle a annoncé que un chercheur en sécurité a identifié une vulnérabilité critique (déjà répertorié sous CVE-2021-43267) dans la mise en œuvre du protocole réseau TIPC fourni dans le noyau Linux, qui permet l'exécution à distance de code avec les privilèges du noyau en envoyant un paquet réseau spécialement conçu.

Le danger du problème est atténué par le fait que l'attaque nécessite d'activer explicitement le support TIPC sur le système (en chargeant et en configurant le module noyau tipc.ko), ce qui n'est pas fait par défaut sur les distributions non-Linux spécialisées.

CodeQL est un moteur d'analyse qui vous permet d'exécuter des requêtes sur votre code. Du point de vue de la sécurité, cela peut vous permettre de trouver des vulnérabilités simplement en décrivant leur apparence. CodeQL sera ensuite mis en ligne et trouvera toutes les instances de cette vulnérabilité.

TIPC est supporté depuis le noyau Linux 3.19, mais le code menant à la vulnérabilité a été inclus dans le noyau 5.10.. Le protocole TIPC a été développé à l'origine par Ericsson, il est destiné à organiser la communication inter-process dans un cluster et est principalement activé sur les nœuds du cluster.

TIPC peut fonctionner à la fois sur Ethernet et sur UDP (port réseau 6118). Dans le cas d'un travail via Ethernet, l'attaque peut être effectuée depuis le réseau local, et en utilisant UDP, depuis le réseau global, si le port n'est pas couvert par un pare-feu. L'attaque peut également être effectuée par un utilisateur local sans privilèges sur l'hôte. Pour activer TIPC, vous devez charger le module noyau tipc.ko et configurer le lien vers l'interface réseau à l'aide de netlink ou de l'utilitaire tipc.

Le protocole est implémenté dans un module noyau fourni avec toutes les principales distributions Linux. Lorsqu'il est chargé par un utilisateur, il peut être utilisé comme un connecteur et peut être configuré dans une interface utilisant netlink (ou en utilisant l'outil de l'espace utilisateur tipc, qui fera ces appels netlink) en tant qu'utilisateur non privilégié.

TIPC peut être configuré pour fonctionner sur un protocole support tel qu'Ethernet ou UDP (dans ce dernier cas, le noyau écoute sur le port 6118 les messages entrants de n'importe quelle machine). Étant donné qu'un utilisateur peu privilégié ne peut pas créer de trames Ethernet brutes, la définition du support sur UDP facilite l'écriture d'un exploit local.

La vulnérabilité se manifeste dans la fonction tipc_crypto_key_rc et est causée par un manque de vérification appropriée de la correspondance entre ce qui est spécifié dans l'en-tête et la taille réelle des données lors de l'analyse des paquets de type MSG_CRYPTO utilisés pour obtenir les clés de chiffrement des autres nœuds du cluster afin de déchiffrer ultérieurement les messages envoyés depuis ces nœuds.

La taille des données copiées en mémoire est calculée comme la différence entre les valeurs des champs avec la taille du message et la taille de l'en-tête, mais sans tenir compte de la taille réelle du nom de l'algorithme de chiffrement transmis dans le message et le contenu de la clé.

La taille du nom de l'algorithme est supposée être fixe, et en plus un attribut séparé avec la taille est passé pour la clé, et l'attaquant peut spécifier une valeur dans cet attribut qui diffère de la valeur réelle, ce qui conduira à écrire dans la file d'attente du message hors du tampon alloué.

La vulnérabilité est corrigée dans les noyaux 5.15.0, 5.10.77 et 5.14.16, bien que le problème apparaisse et n'ait pas encore été corrigé dans Debian 11, Ubuntu 21.04 / 21.10, SUSE (dans la branche SLE15-SP4 pas encore publiée), RHEL (pas encore détaillé si la solution vulnérable a été mise à jour) et Fedora.

Bien que une mise à jour du noyau a déjà été publiée pour Arch Linux et les distributions avec des noyaux antérieurs à 5.10, comme Debian 10 et Ubuntu 20.04, ne sont pas affectées.

Enfin si vous souhaitez en savoir plus, vous pouvez vérifier les détails dans le lien suivant.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.