Ranljivost v runc, ki omogoča pobeg iz vsebnikov Docker in Kubernetes

V kompletu orodij runc za zagon izoliranih vsebnikov, ki se uporabljajo v Dockerju in Kubernetesu, je bila odkrita ranljivost (CVE-2024-21626). Ta ranljivost omogoča dostop do datotečnega sistema gostiteljskega okolja iz izoliranega vsebnika. Med napadom lahko napadalec prepiše določene izvedljive datoteke v gostiteljskem okolju in s tem izvede svojo kodo zunaj vsebnika. Težava ne vpliva na izvajalna okolja crun in youki, ki uporabljata runc ali LXC. Ranljivost je bila odpravljena v runc 1.1.12.

Pri uporabi orodij Docker ali Kubernetes je mogoče izvesti napad s pripravo posebej izdelane slike vsebnika. Ko je vsebnik nameščen in zagnan, lahko dostopa do zunanjega datotečnega sistema. Pri uporabi Dockerja je izkoriščanje možno prek posebej izdelane datoteke Dockerfile. Ranljivost je mogoče izkoristiti tudi z zagonom procesov v vsebniku z ukazom »runc exec« tako, da se delovni imenik veže na imenski prostor gostiteljskega okolja.

Ranljivost povzroča puščanje notranjih deskriptorjev datotek. Preden se koda zažene znotraj vsebnika, runc zapre vse deskriptorje datotek z uporabo zastavice O_CLOEXEC. Vendar pa po naknadni izvedbi funkcije setcwd() deskriptor datoteke, ki kaže na delovni imenik, ostane odprt in dostopen tudi po zagonu vsebnika. Z uporabo tega preostalega deskriptorja datoteke je predlaganih več osnovnih scenarijev napada na gostiteljsko okolje.

Napadalec bi lahko na primer konfiguriral parameter process.cwd v sliki vsebnika tako, da kaže na »/proc/self/fd/7/«, kar bi proces pid1 v vsebniku povezalo z delovnim imenikom, ki se nahaja v prostoru za vpenjanje gostiteljskega okolja. Tako bi lahko sliko vsebnika konfiguriral tako, da zažene »/proc/self/fd/7/../../../bin/bash« in z izvajanjem skripta lupine prepiše vsebino »/proc/self/exe«, ki kaže na kopijo /bin/bash v gostitelju.

Druga različica napada omogoča napadalcu, ki je omejen znotraj vsebnika, dostop do imenika gostiteljskega okolja, če se v določenem vsebniku z ukazom »runc exec« z možnostjo »--cwd« zaženejo privilegirani procesi. Napadalec lahko pot zagnanega procesa zamenja s simbolno povezavo, ki kaže na »/proc/self/fd/7/«, in odpre »/proc/$exec_pid/cwd« za dostop do datotečnega sistema na strani gostitelja. Napadalec lahko tudi prepiše izvedljive datoteke v gostiteljskem okolju tako, da zažene izvedljivo datoteko iz gostiteljskega okolja (»/proc/self/fd/7/../../../bin/bash«) in nato prepiše datoteko »/proc/$pid/exe«, ki se sklicuje na zagnano datoteko.

Poleg tega je bilo v komponentah kompleta orodij Docker odkritih še pet ranljivosti:

  • CVE-2024-23651 je pogoj tekmovanja v BuildKitu, paketu, ki ga Docker uporablja za pretvorbo izvorne kode v artefakte gradnje. Ranljivost povzroča uporaba ene same skupne točke priklopa s predpomnilnikom ("--mount=type=cache,source=") v vzporednih fazah gradnje. To omogoča dostop do datotek v gostiteljskem okolju iz vsebnika gradnje pri obdelavi posebej izdelane datoteke Dockerfile v BuildKitu. Ranljivost je odpravljena v BuildKitu 0.12.5.
  • CVE-2024-23652 – Napaka pri brisanju praznih datotek, ustvarjenih za točko priklopa, pri uporabi možnosti »--mount« omogoča brisanje datotek zunaj vsebnika pri obdelavi posebej izdelane datoteke Dockerfile. Ta ranljivost je odpravljena v različici BuildKit 0.12.5.
  • CVE-2024-23653 – Napaka pri implementaciji API-ja v BuildKitu omogoča izvajanje vsebnika s povišanimi privilegiji, ne glede na nastavitev security.insecure. Ta ranljivost je odpravljena v BuildKitu 0.12.5.
  • CVE-2024-23650 – Zlonamerni odjemalec ali vmesnik BuildKit lahko povzroči zrušitev procesa BuildKit v ozadju. Ta ranljivost je odpravljena v različici BuildKit 0.12.5.
  • CVE-2024-24557 je ranljivost, ki zastruplja predpomnilnik v Mobyju, komponenti za gradnjo specializiranih sistemov za izolacijo vsebnikov. Pri obdelavi posebej izdelane slike vsebnika je mogoče predpomniti podatke, ki jih je mogoče uporabiti v naslednjih fazah gradnje. Ranljivost je odpravljena v Mobyju 25.0.2 in 24.0.9.

Vir: opennet.ru

Kupite zanesljivo gostovanje za strani z DDoS zaščito, VPS VDS strežniki 🔥 Kupite zanesljivo spletno gostovanje z zaščito DDoS, VPS VDS strežniki | ProHoster