Une vulnérabilité d'il y a plus de 15 ans dans Netfilter permettait l'élévation des privilèges

Il y a quelques jours, on a appris que une vulnérabilité a été identifiée dans Netfilter (un sous-système du noyau Linux utilisé pour filtrer et modifier les paquets réseau), qui permet à un utilisateur local d'obtenir les privilèges root dans un systèmemême dans un conteneur isotherme.

La vulnérabilité CVE-2021-22555 c'est un problème qui existe depuis le noyau 2.6.19, lancé il y a 15 ans et est causé par un bug dans les pilotes IPT_SO_SET_REPLACE et IP6T_SO_SET_REPLACE, ce qui provoque un débordement de tampon lors de l'envoi de paramètres spécialement décorés via l'appel setsockopt en mode compat.

Peut-être que beaucoup à ce stade se demanderont comment il est possible qu'une faille dans le noyau Linux puisse passer inaperçue pendant si longtemps et la réponse à cela est que même si la faille qui était présente depuis Linux 2.6.19, la vulnérabilité a été trouvée par le code audit, même si le code C n'était pas reproductible, il n'a donc pas pu être exploité car les ressources nécessaires pour élever les privilèges n'ont pas été trouvées à ce moment-là.

Par exemple, la prise en charge des espaces de noms d'utilisateurs non privilégiés se trouve dans le noyau 3.8. De plus, certaines distributions ont un correctif qui ajoute sysctl pour désactiver les espaces de noms d'utilisateurs non privilégiés.

Dans des circonstances normales, seul l'utilisateur root peut appeler compat_setsockopt ()mais les autorisations nécessaires effectuer une attaque ils peuvent également être obtenus par un utilisateur non privilégié sur les systèmes sur lesquels les espaces de noms d'utilisateurs sont activés.

CVE-2021-22555 est une vulnérabilité d'écriture de pile hors pile vieille de 15 ans dans Linux Netfilter qui est suffisamment puissante pour contourner toutes les atténuations de sécurité modernes et réaliser l'exécution du code du noyau.

Ainsi, il est décrit que un utilisateur local peut créer un conteneur avec un utilisateur root séparé et exploiter la vulnérabilité à partir de làje. Par exemple, les « espaces de noms d'utilisateurs » sont inclus par défaut dans Ubuntu et Fedora, mais pas dans Debian et RHEL.

Cette vulnérabilité peut être exploitée en écrasant partiellement le m_list->nextaiguille msg_msgstructure et la réalisation d'un libre après utilisation. C'est assez puissant pour que votre code de noyau s'exécute en contournant KASLR, SMAP et SMEP.

En outre, un problème survient dans la fonction xt_compat_target_from_user () en raison d'un calcul incorrect de la taille de la mémoire lors de l'enregistrement des structures du noyau après la conversion d'une représentation 32 bits à 64 bits.

En tant que tel, il est mentionné que l'erreur permet à quatre octets "zéro" d'être écrits dans n'importe quelle position en dehors du tampon affecté, limité par le décalage 0x4C. Pour cette raison, il est mentionné que cette fonctionnalité s'est avérée suffisante pour créer un exploit qui permet d'obtenir les droits root : en supprimant le pointeur m_list-> next dans la structure msg_msg, les conditions ont été créées pour accéder aux données après avoir libéré de la mémoire (use-after-free), qui a ensuite été utilisée pour obtenir des informations sur les adresses et les modifications apportées à d'autres structures en manipulant l'appel système msgsnd ().

Concernant le rapport d'erreur, comme toute vulnérabilité détectée, cela implique un processus et le rapport qui a été fait aux développeurs du noyau en avril, avec lequel il a ensuite été corrigé en quelques jours et le correctif qui est inclus dans toutes les distributions prises en charge, afin que les informations sur le bogue peuvent être publiées plus tard.

Les projets Debian, Arch Linux et Fedora ont déjà généré des mises à jour de packages. À partir d'Ubuntu, les mises à jour RHEL et SUSE sont en cours. Car l'erreur est grave, exploitable en pratique et permet de s'échapper du conteneur, Google a estimé sa découverte à 10,000 XNUMX $ et a doublé la récompense au chercheur qui a identifié la vulnérabilité et pour identifier une méthode pour éviter d'isoler les conteneurs Kubernetes sur le cluster kCTF.

Pour les tests, un prototype fonctionnel d'un exploit a été préparé qui contourne les mécanismes de protection KASLR, SMAP et SMEP.

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.