ClickCease Une vulnérabilité dans le code de netfilter permet une élévation locale des privilèges

Rejoignez notre populaire bulletin d'information

Rejoignez 4 500+ professionnels de Linux et de l'Open Source !

2 fois par mois. Pas de spam.

Une vulnérabilité dans le code de netfilter permet une élévation locale des privilèges

23 février 2022 - L'équipe de relations publiques de TuxCare

De nombreuses technologies de haut niveau dans le secteur informatique, en fait la plupart d'entre elles, sont construites sur des fonctionnalités existantes. Les conteneurs en sont un excellent exemple. Cette couche de virtualisation légère est construite sur une fondation qui, entre autres choses, s'appuie fortement sur les cgroups. Les cgroups, ou groupes de contrôle, sont une abstraction qui permet de séparer des composants spécifiques du système, comme la mémoire, le processeur ou le réseau, par des niveaux d'accès. Ceci est utile pour cacher des parties du système à des processus spécifiques s'exécutant dessus, permettant à certains processus de s'exécuter de manière "isolée" du reste du système ou "dans un conteneur".

Mais cette superposition de technologies comporte certains risques. Lorsqu'une vulnérabilité qui affecte l'un des composants de base apparaît, toute la pile est potentiellement vulnérable. C'est ce qui s'est passé avec CVE-2022-25636, une vulnérabilité récemment divulguée qui affecte le code réseau de cgroups. Elle a un impact sur les distributions utilisant le noyau 4.18.0-240.el8 et plus (RHEL 8 et ses dérivés comme AlmaLinux 8, CentOS 8, Oracle EL 8, ainsi qu'Ubuntu et d'autres). Il permet une élévation de privilèges pour les utilisateurs locaux. Les correctifs de KernelCare Enterprise seront bientôt disponibles et ce billet sera mis à jour pour refléter cette disponibilité au fur et à mesure.

Le problème se situe dans la fonction nft_fwd_dup_netdev_offload, dans le fichier net/netfilter/nf_dup_netdev.c de l'arborescence du code source du noyau Linux. Il s'agit d'une partie de netfilter, qui est à son tour le code responsable de la gestion des paquets réseau et qui sous-tend des éléments courants comme la technologie de pare-feu iptables. Le code spécifique est utilisé, principalement, dans le contexte des cgroups réseau, à leur tour par les conteneurs, où il permet la ségrégation du trafic réseau entre les différents conteneurs et le système hôte.

Il a été découvert qu'un utilisateur local pouvait déclencher un accès mémoire hors limites dans cette fonction et corrompre des emplacements mémoire spécifiques. Le rapport original sur la vulnérabilité comprenait un code d'exploitation qui mettait en évidence le problème et permettait une escalade des privilèges locaux. Cette vulnérabilité a reçu un score de 7.8 (CVSS 3) qui reflète son impact et sa facilité d'exploitation, ainsi que l'existence d'un code d'exploitation facilement disponible.

Bien que le code affecté ait été introduit avec la version 5.4 du noyau Linux, dans le cadre des processus normaux de support, il a été rétroporté vers des versions plus anciennes comme celles incluses dans la famille des distributions Enterprise Linux 8 (RHEL 8, CentOS 8, AlmaLinux 8, etc.). Pour ces dernières, vous pouvez vérifier si la version du noyau en cours d'exécution est 4.18.0-240.el8 ou supérieure, et si c'est le cas, le système sera vulnérable.

Il existe des mesures d'atténuation qui peuvent être appliquées aux systèmes affectés jusqu'à ce qu'un correctif soit disponible, mais elles dépendent fortement du fait que la fonctionnalité affectée ne soit pas critique. Si le système exécute des conteneurs, ceux-ci seront affectés, et il convient de faire preuve de discernement pour peser le pour et le contre de ces mesures d'atténuation. Il est possible d'éviter la fonctionnalité affectée en exécutant :

echo 0 > /proc/sys/user/max_user_namespaces

Cette modification sera annulée au redémarrage du système. Pour une méthode plus détaillée et permanente de désactivation de cette fonctionnalité, consultez la section sur les mesures d'atténuation ici. Encore une fois, il est important de souligner que cela aura un impact sur l'exécution régulière des conteneurs et ne devrait être déployé que lorsque cela est acceptable. Par exemple, si le système n'exécute pas de charges de travail conteneurisées.

Des correctifs vivants pour les distributions prises en charge et affectées sont en cours de préparation et seront mis à la disposition des abonnés au service KernelCare Enterprise dans les prochains jours. Cet article sera mis à jour pour refléter la disponibilité réelle des correctifs au fur et à mesure que le développement et les tests seront finalisés pour chaque distribution.

Pour plus d'informations sur KernelCare Enterprise et les autres produits TuxCare qui renforcent la sécurité de votre système sans affecter votre temps de fonctionnement, consultez https://tuxcare.com/live-patching-services/.

Vous cherchez à automatiser la correction des vulnérabilités sans redémarrage du noyau, temps d'arrêt du système ou fenêtres de maintenance programmées ?

Découvrez le Live Patching avec TuxCare

Devenez rédacteur invité de TuxCare

Commencer

Courrier

Rejoindre

4,500

Professionnels de Linux et de l'Open Source
!

S'abonner à
notre lettre d'information