En sårbarhet (CVE-2024-21626) ble oppdaget i runc-verktøysettet for oppstart av isolerte containere, brukt i Docker og Kubernetes. Denne sårbarheten gir tilgang til vertsmiljøets filsystem fra en isolert container. Under angrepet kan en angriper overskrive visse kjørbare filer i vertsmiljøet, og dermed kjøre koden sin utenfor containeren. Problemet påvirker ikke crun- og youki-kjøretidene, som bruker runc eller LXC. Sårbarheten ble rettet i runc 1.1.12.
Når du bruker Docker- eller Kubernetes-verktøy, kan et angrep utføres ved å forberede et spesiallaget containerbilde. Når containeren er installert og startet, kan den få tilgang til et eksternt filsystem. Når du bruker Docker, er utnyttelse mulig via en spesiallaget Dockerfile. Sårbarheten kan også utnyttes ved å starte prosesser i containeren med kommandoen "runc exec" ved å binde arbeidskatalogen til vertsmiljøets navneområde.
Sårbarheten skyldes en lekkasje av interne filbeskrivelser. Før kode kjøres i en container, lukker runc alle filbeskrivelser ved hjelp av O_CLOEXEC-flagget. Etter den påfølgende kjøringen av setcwd()-funksjonen forblir imidlertid en filbeskrivelse som peker til arbeidskatalogen åpen og tilgjengelig etter at containeren starter. Flere grunnleggende angrepsscenarier mot vertsmiljøet foreslås ved hjelp av denne gjenværende filbeskrivelsen.
For eksempel kan en angriper konfigurere process.cwd-parameteren i et containerbilde til å peke til «/proc/self/fd/7/», som ville binde pid1-prosessen i containeren til en arbeidskatalog som ligger i vertsmiljøets monteringsplass. Dermed kan containerbildet konfigureres til å starte «/proc/self/fd/7/../../../bin/bash» og, ved å kjøre et skallskript, overskrive innholdet i «/proc/self/exe», som peker til vertsmaskinens kopi av /bin/bash.
En annen angrepsvariant lar en angriper som er begrenset i en container få tilgang til vertsmiljøets katalog hvis privilegerte prosesser startes i den angitte containeren ved hjelp av kommandoen "runc exec" med alternativet "--cwd". Angriperen kan erstatte banen til den startet prosessen med en symbolsk lenke som peker til "/proc/self/fd/7/" og åpne "/proc/$exec_pid/cwd" for å få tilgang til filsystemet på vertssiden. Angriperen kan også overskrive kjørbare filer på vertsmiljøet ved å starte en kjørbar fil fra vertsmiljøet ("/proc/self/fd/7/../../../bin/bash") og deretter overskrive "/proc/$pid/exe"-filen som refererer til den startet filen.
I tillegg ble det identifisert fem ytterligere sårbarheter i Docker-verktøysettets komponenter:
- CVE-2024-23651 er en kappløpsbetingelse i BuildKit, en pakke som brukes av Docker til å transformere kildekode til byggeartefakter. Sårbarheten skyldes bruk av et enkelt delt monteringspunkt med en hurtigbuffer ("--mount=type=cache,source=") i parallelle byggefaser. Dette gir tilgang til filer i vertsmiljøet fra byggecontaineren når en spesiallaget Dockerfile behandles i BuildKit. Sårbarheten er rettet i BuildKit 0.12.5.
- CVE-2024-23652 – En feil ved sletting av tomme filer opprettet for et monteringspunkt når alternativet "--mount" brukes, tillater filsletting utenfor containeren når en spesiallaget Dockerfile behandles. Denne sårbarheten er rettet i BuildKit 0.12.5.
- CVE-2024-23653 – En API-implementeringsfeil i BuildKit tillater at en container kjøres med forhøyede rettigheter, uavhengig av security.insecure-innstillingen. Denne sårbarheten er rettet i BuildKit 0.12.5.
- CVE-2024-23650 – En ondsinnet BuildKit-klient eller -grensesnitt kan føre til at en BuildKit-bakgrunnsprosess krasjer. Denne sårbarheten er rettet i BuildKit 0.12.5.
- CVE-2024-24557 er en sårbarhet for hurtigbufferforgiftning i Moby, en komponent for å bygge spesialiserte containerisoleringssystemer. Når man behandler et spesiallaget containerbilde, er det mulig å mellomlagre data som kan brukes i påfølgende byggetrinn. Sårbarheten er rettet i Moby 25.0.2 og 24.0.9.
Kilde: opennet.ru
