Une vulnérabilité de sécurité récemment révélée dans le moteur de conteneur Kubernetes CRI-O appelée cr8évasion pourrait être exploitée par un attaquant pour sortir des conteneurs et obtenir un accès root à l’hôte.
« L’invocation de CVE-2022-0811 peut permettre à un attaquant d’effectuer diverses actions sur des objectifs, y compris l’exécution de logiciels malveillants, l’exfiltration de données et le mouvement latéral entre les pods », ont déclaré John Walker et Manoj Ahuje, chercheurs de CrowdStrike. mentionné dans une analyse publiée cette semaine.
Une alternative légère à Docker, CRI-O est un exécution du conteneur mise en œuvre de l’interface d’exécution de conteneur Kubernetes (CRI) qui est utilisée pour extraire des images de conteneur des registres et lancer une initiative Open Container (BEC)-compatible runtime tel que runC pour générer et exécuter des processus de conteneur.
La vulnérabilité est notée 8,8 sur le système de notation des vulnérabilités CVSS et affecte les versions 1.19 et ultérieures de CRI-O. Suite à la divulgation responsable, des correctifs ont été publiés pour corriger la faille dans version 1.23.2 expédié le 15 mars 2022.
CVE-2022-0811 découle d’un changement de code introduit dans la version 1.19 pour définir les options du noyau pour un pod, ce qui entraîne un scénario dans lequel un acteur malveillant disposant des autorisations nécessaires pour déployer un pod sur un cluster Kubernetes à l’aide de l’environnement d’exécution CRI-O peut tirer parti du « noyau.core_pattern » pour obtenir l’échappement du conteneur et l’exécution de code arbitraire en tant que root sur n’importe quel nœud du cluster.
Le paramètre « kernel.core_pattern » est utilisé pour spécifier un nom de modèle pour un vidage mémoirequi est un fichier contenant l’instantané de la mémoire d’un programme à un moment précis qui est généralement activé en réponse à des plantages inattendus ou lorsque le processus se termine anormalement.
« Si le premier caractère du motif est un ‘|’ [a pipe], le noyau traitera le reste du modèle comme une commande à exécuter. Le vidage de mémoire sera écrit dans l’entrée standard de ce programme au lieu d’un fichier « , lit le Documentation du noyau Linux.
Par conséquent, en définissant cette option pour pointer vers un script shell malveillant et en déclenchant un vidage mémoire, la vulnérabilité conduit à l’invocation du script, réalisant ainsi l’exécution de code à distance et permettant à l’adversaire de prendre le contrôle du nœud.
« Kubernetes n’est pas nécessaire pour invoquer CVE-2022-8011 », ont souligné les chercheurs. « Un attaquant sur une machine sur laquelle CRI-O est installé peut l’utiliser pour définir lui-même les paramètres du noyau. »