Vulnérabilité dans le sous-système du noyau Linux Netfilter

Dans Netfilter, le sous-système du noyau Linux utilisé pour filtrer et modifier les paquets réseau, une vulnérabilité (CVE-2021-22555) a été identifiée, permettant à un utilisateur local d'obtenir des privilèges root dans le système, même en se trouvant dans un conteneur isolé. Un prototype fonctionnel d'exploit contournant les mécanismes de protection KASLR, SMAP et SMEP a été préparé pour les tests. Le chercheur ayant découvert cette vulnérabilité a reçu une récompense de 20 000 dollars de Google pour la découverte d'une méthode de contournement de l'isolation des conteneurs Kubernetes dans le cluster kCTF.

Le problème apparaît depuis le noyau 2.6.19, sorti il y a 15 ans, et est causé par une erreur dans les gestionnaires IPT_SO_SET_REPLACE et IP6T_SO_SET_REPLACE, entraînant un débordement de tampon lors de l'envoi de paramètres spécialement formés via l'appel à setsockopt en mode compat. Dans des conditions normales, l'appel compat_setsockopt() ne peut être exécuté que par l'utilisateur root, mais les autorisations nécessaires pour effectuer l'attaque peuvent également être obtenues par un utilisateur non privilégié dans des systèmes avec la prise en charge activée des espaces de noms d'identifiants d'utilisateur (user namespaces).

L'utilisateur peut créer un conteneur avec un utilisateur root distinct et exploiter la vulnérabilité à partir de celui-ci. Par exemple, les « user namespaces » sont activés par défaut sous Ubuntu et Fedora, mais ne sont pas activés sous Debian et RHEL. Un patch corrigeant la vulnérabilité a été intégré au noyau Linux le 13 avril. Des mises à jour de paquets ont déjà été préparées par les projets Debian, Arch Linux et Fedora. Sous Ubuntu, RHEL et SUSE, les mises à jour sont en cours de préparation.

Le 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 de 32 bits à 64 bits. L'erreur permet d'écrire quatre octets nuls à n'importe quelle position en dehors du tampon alloué, limitée par le décalage 0x4C. Cette possibilité a suffi pour créer un exploit permettant d'obtenir des droits root — en nettoyant le pointeur m_list->next dans la structure msg_msg, des conditions étaient créées pour accéder aux données après la libération de la mémoire (use-after-free), qui étaient ensuite utilisées pour obtenir des informations sur les adresses et modifier d'autres structures en manipulant l'appel système msgsnd().

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster