I verktyget för att köra isolerade behÄllare, runc, som anvÀnds i Docker och Kubernetes, har en sÄrbarhet identifierats, CVE-2024-21626, som möjliggör Ätkomst till filsystemet i vÀrdmiljön frÄn en isolerad behÄllare. Under en attack kan en angripare skriva över vissa körbara filer i vÀrdmiljön och dÀrigenom fÄ utfört sin kod utanför behÄllaren. I runtime-verktygen crun och youki, som anvÀnder runc, samt i LXC, upptrÀder inte problemet. SÄrbarheten har ÄtgÀrdats i version 1.1.12 av runc.
Vid anvÀndning av verktygen Docker eller Kubernetes kan attacken genomföras genom att förbereda en speciellt utformad containeravbildning, efter installation och uppstart av vilken det Àr möjligt att nÄ det externa filsystemet frÄn behÄllaren. Vid anvÀndning av Docker finns det en möjlighet till utnyttjande genom en speciellt utformad Dockerfile. SÄrbarheten kan Àven utnyttjas i fall dÀr processer startas i behÄllaren med kommandot "runc exec" genom att koppla arbetskatalogen till vÀrdmiljöns namnrymd.
SÄrbarheten orsakas av lÀckage av interna filbeskrivare. Innan koden körs inuti behÄllaren stÀnger runc alla filbeskrivare med hjÀlp av flaggan O_CLOEXEC. Trots detta förblir en filbeskrivare, som pekar pÄ arbetskatalogen, öppen efter att funktionen setcwd() har körts, vilket gör den tillgÀnglig Àven efter att behÄllaren har startats. Flera grundlÀggande attackscenarier mot vÀrdmiljön har föreslagits med hjÀlp av den ÄterstÄende filbeskrivaren.
Till exempel kan angriparen ange parameter process.cwd i behÄllarens avbildning, som pekar pÄ "/proc/self/fd/7/", vilket leder till att arbetskatalogen som ligger i vÀrdmiljöns monteringsutrymme kopplas till process pid1 i behÄllaren. PÄ sÄ sÀtt kan avbildningen konfigureras för att köra "/proc/self/fd/7/../../../bin/bash" och genom att köra ett shell-script skriva över innehÄllet i "/proc/self/exe", som pekar pÄ vÀrdversionen av /bin/bash.
Ett annat angreppssÀtt gör det möjligt för en angripare, som Àr begrÀnsad inom en container, att fÄ Ätkomst till vÀrdmiljökatalogen, om privilegierade processer körs i den angivna containern med hjÀlp av kommandot 'runc exec' med alternativet '--cwd'. Angriparen kan byta ut sökvÀgen för den körande processen mot en symbolisk lÀnk som pekar pÄ '/proc/self/fd/7/' och dÀrmed fÄ Ätkomst till '/proc/$exec_pid/cwd' för att komma Ät filsystemet pÄ vÀrden. Angriparen kan ocksÄ Ästadkomma en överskrivning av körbara filer pÄ vÀrdsidan genom att starta en körbar fil frÄn vÀrdmiljön ('/proc/self/fd/7/../../../bin/bash') och sedan överskriva filen '/proc/$pid/exe', som hÀnvisar till den körda filen.
Dessutom har ytterligare fem sÄrbarheter upptÀckts i komponenterna av Docker-verktygen:
- CVE-2024-23651 â ett kapplöpningslĂ€ge i BuildKit-paketet, som anvĂ€nds i Docker för att konvertera kĂ€llkod till byggartefakter. SĂ„rbarheten orsakas av anvĂ€ndningen av en gemensam monteringspunkt med cache i parallellt körande byggskeden ('--mount=type=cache,source='), vilket tillĂ„ter Ă„tkomst till filer i vĂ€rdmiljön frĂ„n byggcontainern vid behandling av en sĂ€rskilt utformad Dockerfile. SĂ„rbarheten har Ă„tgĂ€rdats i BuildKit 0.12.5.
- CVE-2024-23652 â ett fel vid borttagning av tomma filer, skapade för monteringspunkten vid anvĂ€ndning av alternativet '--mount', möjliggör borttagning av en fil utanför containern vid behandling av en sĂ€rskilt utformad Dockerfile. SĂ„rbarheten har Ă„tgĂ€rdats i BuildKit 0.12.5.
- CVE-2024-23653 â ett fel i API-implementeringen i BuildKit tillĂ„ter körning av en container med förhöjda behörigheter, oavsett instĂ€llningar för security.insecure. SĂ„rbarheten har Ă„tgĂ€rdats i BuildKit 0.12.5.
- CVE-2024-23650 â en skadlig klient eller frontend i BuildKit kan orsaka en krasch av BuildKit:s bakgrundsprocess. SĂ„rbarheten har Ă„tgĂ€rdats i BuildKit 0.12.5.
- CVE-2024-24557 â möjlighet till cache-berusning i Moby, komponenten för att bygga specialiserade containern isoleringssystem. Vid bearbetning av en sĂ€rskilt utformad containerbild kan datakĂ€llor lagras i cachen som kan anvĂ€ndas i senare byggprocesser. SĂ„rbarheten har Ă„tgĂ€rdats i Moby 25.0.2 och 24.0.9.
KĂ€lla: opennet.ru
