Vulnérabilité dans cgroups v1 permettant de sortir d'un conteneur isolé

Des dĂ©tails sur la vulnĂ©rabilitĂ© (CVE-2022-0492) dans l'implĂ©mentation du mĂ©canisme de limitation des ressources cgroups v1 dans le noyau Linux ont Ă©tĂ© rĂ©vĂ©lĂ©s, qui peut ĂȘtre utilisĂ©e pour sortir des conteneurs isolĂ©s. Le problĂšme se manifeste Ă  partir du noyau Linux 2.6.24 et a Ă©tĂ© corrigĂ© dans les versions du noyau 5.16.12, 5.15.26, 5.10.97, 5.4.177, 4.19.229, 4.14.266 et 4.9.301. Les mises Ă  jour des paquets dans les distributions peuvent ĂȘtre suivies sur ces pages : Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux.

La vulnĂ©rabilitĂ© est causĂ©e par une erreur logique dans le gestionnaire de fichiers release_agent, ce qui empĂȘche l'exĂ©cution des vĂ©rifications appropriĂ©es lors du lancement du gestionnaire avec un ensemble complet de privilĂšges. Le fichier release_agent est utilisĂ© pour dĂ©terminer le programme que le noyau exĂ©cute Ă  la fin du processus dans le cgroup. Ce programme est exĂ©cutĂ© avec des droits root et tous les « capabilities » dans l'espace de noms racine. On supposait que l'accĂšs Ă  la configuration de release_agent n'Ă©tait disponible que pour l'administrateur, mais en rĂ©alitĂ©, les vĂ©rifications se limitaient Ă  accorder l'accĂšs Ă  l'utilisateur root, ce qui n'exclut pas la modification de la configuration depuis un conteneur ou par un utilisateur root sans droits d'administrateur (CAP_SYS_ADMIN).

Auparavant, une telle fonctionnalité n'aurait pas été perçue comme une vulnérabilité, mais la situation a changé avec l'émergence des espaces de noms d'identifiants utilisateur (user namespaces), qui permettent de créer dans les conteneurs des utilisateurs root distincts, ne chevauchant pas l'utilisateur root de l'environnement principal. Par conséquent, pour effectuer une attaque, il suffit dans un conteneur ayant son propre utilisateur root dans un espace de noms d'identifiants utilisateur distinct d'injecter son propre gestionnaire release_agent, qui sera exécuté avec tous les privilÚges de l'environnement principal une fois le processus terminé.

Par dĂ©faut, cgroupfs est montĂ© dans le conteneur en mode lecture seule, mais il n'y a pas de problĂšme Ă  remonter ce pseudo-systĂšme de fichiers en mode Ă©criture avec des droits CAP_SYS_ADMIN ou en crĂ©ant, Ă  l'aide de l'appel systĂšme unshare, un conteneur imbriquĂ© avec un espace de noms utilisateur distinct, oĂč les droits CAP_SYS_ADMIN sont disponibles pour le conteneur créé.

Vulnérabilité dans cgroups v1 permettant de sortir d'un conteneur isolé

Une attaque peut ĂȘtre rĂ©alisĂ©e en ayant des privilĂšges root dans un conteneur isolĂ© ou en lançant un conteneur sans le drapeau no_new_privs, qui interdit l'acquisition de privilĂšges supplĂ©mentaires. La prise en charge des espaces de noms utilisateur doit ĂȘtre activĂ©e dans le systĂšme (activĂ©e par dĂ©faut dans Ubuntu et Fedora, mais pas activĂ©e dans Debian et RHEL) et un accĂšs au cgroup racine v1 doit ĂȘtre prĂ©sent (par exemple, Docker lance des conteneurs dans le cgroup RDMA racine). Une attaque est Ă©galement possible en disposant des privilĂšges CAP_SYS_ADMIN, auquel cas la prise en charge des espaces de noms utilisateur et l'accĂšs Ă  la hiĂ©rarchie cgroup racine v1 ne sont pas requis.

En plus de sortir d'un conteneur isolé, la vulnérabilité permet également aux processus lancés par l'utilisateur root sans « capabilities » ou à tout utilisateur disposant des droits CAP_DAC_OVERRIDE (un accÚs au fichier /sys/fs/cgroup/*/release_agent, qui appartient à root, est requis pour l'attaque), d'accéder à toutes les « capabilities » systÚme.

Il est Ă  noter que la vulnĂ©rabilitĂ© ne peut pas ĂȘtre exploitĂ©e lorsque des mĂ©canismes de protection tels que Seccomp, AppArmor ou SELinux sont appliquĂ©s 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.

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