Ils ont trouvé une vulnérabilité dans cgroups v1 qui permet de sortir d'un conteneur isolé

Il ya quelques jours la nouvelle est sortie les détails ont été dévoilés une vulnérabilité qui a été trouvé dans la mise en œuvre du mécanisme limitation des ressources cgroup v1 dans le noyau Linux qui est déjà catalogué sous CVE-2022-0492.

Cette vulnérabilité trouvée se peut être utilisé pour sortir des conteneurs isolés et il est détaillé que le problème est présent depuis le noyau Linux 2.6.24.

Dans le billet de blog, il est mentionné que la vulnérabilité est due à une erreur logique dans le gestionnaire de fichiers release_agent, les vérifications appropriées n'ont donc pas été effectuées lorsque le pilote a été exécuté avec des autorisations complètes.

L'archive release_agent est utilisé pour définir le programme que le noyau exécute lorsqu'un processus se termine dans un groupe de contrôle. Ce programme s'exécute en tant que root avec toutes les « capacités » dans l'espace de noms root. Seul l'administrateur était censé avoir accès à la configuration release_agent, mais en réalité, les vérifications se limitaient à accorder l'accès à l'utilisateur root, ce qui n'empêchait pas la modification de la configuration depuis le conteneur ou par l'utilisateur root non administrateur (CAP_SYS_ADMIN ) .

précédemment, cette fonctionnalité n'aurait pas été perçue comme une vulnérabilité, mais la situation a changé avec l'avènement des espaces de noms d'identifiant d'utilisateur (espaces de noms d'utilisateurs), qui vous permettent de créer des utilisateurs racine distincts dans des conteneurs qui ne chevauchent pas l'utilisateur racine de l'environnement principal.

En conséquence, pour une attaque, c'est suffisant dans un conteneur qui a son propre utilisateur root dans un espace d'identification d'utilisateur séparé pour brancher votre gestionnaire release_agent, qui, une fois le processus terminé, s'exécutera avec tous les privilèges de l'environnement parent.

Par défaut, cgroupfs est monté dans un conteneur en lecture seule, mais il n'y a aucun problème à remonter ce pseudofs en mode écriture avec les droits CAP_SYS_ADMIN ou en créant un conteneur imbriqué avec un espace de noms d'utilisateur séparé à l'aide de l'appel système pour arrêter le partage, dans lequel les droits CAP_SYS_ADMIN sont disponibles pour le conteneur créé.

L'attaque peut être fait en ayant des privilèges root dans un conteneur isolé ou en exécutant le conteneur sans l'indicateur no_new_privs, qui interdit l'obtention de privilèges supplémentaires.

Le système doit prendre en charge les espaces de noms activés utilisateur (activé par défaut sur Ubuntu et Fedora, mais pas activé sur Debian et RHEL) et avoir accès au groupe de contrôle racine v1 (par exemple, Docker exécute des conteneurs dans le groupe de contrôle racine RDMA). L'attaque est également possible avec les privilèges CAP_SYS_ADMIN, auquel cas la prise en charge des espaces de noms d'utilisateurs et l'accès à la hiérarchie racine du cgroup v1 ne sont pas nécessaires.

En plus de sortir du conteneur isolé, la vulnérabilité permet également aux processus démarrés par l'utilisateur root sans "capacité" ou par tout utilisateur disposant des droits CAP_DAC_OVERRIDE (l'attaque nécessite l'accès au fichier /sys/fs/cgroup/*/release_agent appartenant à root) pour obtenir l'accès à toutes les "capacités" du système.

Outre les conteneurs, la vulnérabilité peut également permettre aux processus hôtes racine sans capacités, ou aux processus hôtes non racine avec la capacité CAP_DAC_OVERRIDE, d'élever les privilèges aux capacités complètes. Cela peut permettre aux attaquants de contourner une mesure de renforcement utilisée par certains services, qui suppriment des fonctionnalités dans le but de limiter l'impact en cas de compromission.

L'unité 42 recommande aux utilisateurs de mettre à niveau vers une version fixe du noyau. Pour les conteneurs en cours d'exécution, activez Seccomp et assurez-vous qu'AppArmor ou SELinux est activé. Les utilisateurs de Prisma Cloud peuvent se référer à la section « Prisma Cloud Protections » pour voir les atténuations fournies par Prisma Cloud.

Notez que la vulnérabilité ne peut pas être exploitée lors de l'utilisation des mécanismes de protection Seccomp, AppArmor ou SELinux pour une isolation supplémentaire des conteneurs, car Seccomp bloque l'appel système unshare() et AppArmor et SELinux n'autorisent pas le montage de cgroupfs en mode écriture.

Enfin, il convient de mentionner qu'il a été corrigé dans les versions de noyau 5.16.12, 5.15.26, 5.10.97, 5.4.177, 4.19.229, 4.14.266 et 4.9.301. Vous pouvez suivre la publication des mises à jour de packages dans les distributions sur ces pages : DebianSUSEUbuntuRHELfeutreGentooArch Linux.

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


Le contenu de l'article adhère à nos principes de éthique éditoriale. Pour signaler une erreur, cliquez sur c'est par ici !.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

*

*

  1. Responsable des données: Miguel Ángel Gatón
  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.