Useita kriittisiä haavoittuvuuksia konttiteknologioiden runc ja Moby BuildKit -työkaluissa | Traficom

Useita kriittisiä haavoittuvuuksia konttiteknologioiden runc ja Moby BuildKit -työkaluissa

2. helmikuuta 2024 klo 12.26

runc ja Moby BuildKit ovat konttiteknologian alustaratkaisuissa käytettäviä työkaluja, joihin yläkerrosten sovellukset, kuten Docker ja Kubernetes nojaavat. Työkaluissa on havaittu kriittisiä haavoittuvuuksia, joiden avulla hyökkääjä voi saada pääsyn järjestelmään ja sen arkaluonteisiin tietoihin. Haavoittuvuudet mahdollistavat myös jatkohyökkäyksien tekemisen.

runc 1.1.11:ssä ja sitä aikaisemmissa versioissa haavoittuvuus (CVE-2024-21626) mahdollistaa kontista pakenemisen kontteja rakennettaessa tai ajettaessa. Haavoittuvuus hyväksikäyttää heikkoutta WORKDIR-komennon yhteydessä tehtyjen operaatioiden järjestyksessä. Haavoittuvuuden hyödyntäminen voi johtaa siihen, että kontissa käynnistettävä koodi ajetaankin isäntäjärjestelmässä. Tämä hyökkäyksen hyödyntäminen vaatii paikalliset oikeudet järjestelmään.

Moby BuildKit-haavoittuvuuksia on kolme, CVE-2024-23651 (CVSS:8.7) , CVE-2024-23652 (CVSS:10) ja CVE-2024-23653 (CVSS:9.8). Hyökkääjä voi näitä haavoittuvuuksia hyödyntäen poistaa tiedostoja isäntäjärjestelmästä ja korottaa käyttöoikeuksiaan sekä suorittaa koodia isäntäjärjestelmässä. Näitä haavoituvuuksia voidaan hyväksikäyttää etänä.

Haavoittuvat versiot:

  • runc: versiot 1.1.11 asti
  • BuildKit: versio 0.12.4 asti
  • Moby (Docker Engine): versiot v25.0.1:een ja v24.0.8:aan asti
  • Docker Desktop: versiot 4.27.0:aan asti

Haavoituvuuksien korjaavat päivitykset on saatavilla.
Suosittelemme päivittämään sovelluksen tuoreempaan versioon mahdollisimman pian, jos näin ei ole jo toimittu.

Haavoittuvuus koskee organisaatioita, jotka käyttävät kyseistä tuotetta.

Haavoittuvuuden kohde

  • runc: versiot 1.1.11 asti
  • BuildKit: versiot 0.12.4 asti
  • Moby (Docker Engine): versiot v25.0.1 ja v24.0.8
  • Docker Desktop: versiot 4.27.0 asti

Mistä on kysymys?

  • runc: versio 1.1.12 tai uudempi
  • BuildKit: versio 0.12.5 tai uudempi
  • Moby (Docker Engine): versio 25.0.2 tai uudempi ja versio 24.0.9 tai uudempi
  • Docker Desktop: versio 4.27.1 tai uudempi

Mitä voin tehdä?

Leaky Vessels: Docker and runc container breakout vulnerabilities (January 2024)

Runc process.cwd and leaked fds container breakout

Mody Buildkit Build-time Container Teardown Arbitrary Delete

Mody BuildKit - GRPC SecurityMode privilege check: Build-time container breakout

Mody BuidKit - Build-time race condition container breakout

Palvelimet ja palvelinsovellukset

Palvelinten ja palvelinohjelmistojen haavoittuvuudet koskevat esimerkiksi sähköisten asiointipalvelujen tarjoajia. Tyypillisiä kohteita ovat palvelinten käyttöjärjestelmät ja www- tai sähköpostipalvelinohjelmistot kuten esimerkiksi SunOS, Linux, Apache, IIS tai Sendmail.

Etäkäyttö

Etäkäyttöisesti tehtävän hyökkäyksen voi tehdä tietoverkkoyhteyden tai vastaavan kautta ilman että pääsee itse kohteena olevan järjestelmän luokse.

Ilman käyttäjän toimia

Ilman käyttäjän toimia tapahtuva hyökkäys kohdistuu suoraan haavoittuvuuteen ilman että järjestelmän käyttäjältä vaaditaan mitään toimia hyökkäyksen onnistumiseksi. Käyttäjän ei esimerkiksi tarvitse selailla www-sivuja tai käynnistää ohjelmaa tietokoneessa, vaan hyökkäys onnistuu ilman käyttäjän apua.

Paikallisesti

Paikallisesti tapahtuvan hyökkäyksen voi tehdä vain pääsemällä hyökkäyksen kohteena olevan laitteen luokse ja käyttämällä sitä paikallisesti. Paikallista hyökkäystä ei voi tehdä verkkoyhteyden kautta.

Ilman kirjautumista

Hyökkäys ei vaadi kohteena olevaan järjestelmään kirjautumista. Vastakohtana ovat sellaiset hyökkäykset, jotka vaativat käyttäjätunnuksen ja salasanan käyttöä ja esimerkiksi komentojen suorittamista järjestelmään kirjautuneena.

Komentojen mielivaltainen suorittaminen

Komentojen mielivaltaisen suorittamisen mahdollistavaa haavoittuvuutta on pidettävä vakavana, sillä se tarkoittaa sitä, että hyväksikäyttäjä voi käyttää kohteena olevaa järjestelmää aivan kuin sen tavallinen käyttäjäkin. Se voi johtaa myös siihen, että järjestelmään murtautunut hyökkääjä voi ladata verkon kautta järjestelmään omia ohjelmiaan suoritettavaksi.

Suojauksen ohittaminen

Suojauksen ohittamisella tarkoitetaan sitä, että haavoittuvuutta hyväksikäyttämällä ohitetaan järjestelmän käytön rajoittamiseksi tehty suojaus esimerkiksi liikennöimällä palomuurin ohi suojattuun verkkoon.

Käyttövaltuuksien laajentaminen

Käyttövaltuuksien laajentaminen mahdollistaa järjestelmän käyttämisen esimerkiksi pääkäyttäjänä, tavallista käyttäjää laajemmin valtuuksin.

Tietojen muokkaaminen

Järjestelmään talletettujen tietojen muokkaaminen ei välttämättä edellytä komentojen suorittamista, käyttövaltuuksien laajentamista tai järjestelmään kirjautumista. Esimerkiksi käyttämällä hyväksi www-palvelinohjelmiston haavoittuvuutta voi hyökkääjä luvatta muuttaa palvelimella näkyvien verkkosivujen sisältöä.

Luottamuksellisen tiedon hankkiminen

Luottamuksellisten tietojen hankkiminen kohdejärjestelmästä edellyttää sitä, että sen tietosisältöä, esimerkiksi kiintolevylle talletettuja tiedostoja, pääsee lukemaan luvatta ja välittämään edelleen.

Haavoittuvuuden havainnollistava esimerkkikoodi

Proof of concept.

Korjaava ohjelmistopäivitys

Ohjelmisto- tai laitevalmistaja julkaisee tavallisesti pian uuden version tai osittaisen päivityksen ohjelmistoon tai käyttöjärjestelmään sen jälkeen kun haavoittuvuus on tullut julki. Päivitys voi olla saatavilla samalla kun haavoittuvuuskin julkaistaan, mutta usein sitä joudutaan odottelemaan jonkin aikaa.