Vundebleco en runc kiu permesas eskapon de Docker kaj Kubernetes ujoj

Vundebleco CVE-2024-21626 estis trovita en la ilaro runc por lanĉi izolitajn kontenerojn, uzatan en Docker kaj Kubernetes. Ĝi permesas aliri la dosiersistemon de la gastiga medio el izolita ujo. Dum la atako, atakanto povas anstataŭigi iujn efektivigeblajn dosierojn en la gastiga medio kaj tiel atingi la plenumon de sia kodo ekster la ujo. La problemo ne okazas en la rultempaj crun kaj youki, kiuj uzas runc, same kiel en LXC. La vundebleco estis riparita en runc 1.1.12.

Kaze de uzado de Docker aŭ Kubernetes-iloj, atako povas esti efektivigita per preparado de speciale dizajnita kontenera bildo, post kies instalado kaj lanĉo ekstera dosiersistemo estas alirebla el la ujo. Uzante Docker, eblas ekspluati ĝin per speciale dizajnita Dockerfile. La vundebleco ankaŭ povas esti ekspluatata se procezoj estas lanĉitaj en la ujo uzante la komandon "runc exec" ligante la laboran dosierujon al la nomspaco de la gastiganta medio.

La vundebleco estas kaŭzita de likado de internaj dosierpriskribiloj. Antaŭ ol ruli kodon ene de ujo, runc fermas ĉiujn dosierpriskribilojn uzante la flagon O_CLOEXEC. Tamen, post la posta plenumo de la funkcio setcwd(), dosierpriskribilo montranta al la labora dosierujo restas malfermita kaj restas alirebla post kiam la ujo estas startigita. Pluraj bazaj atakscenaroj estas proponitaj por la gastiganta medio uzante la restantan dosierpriskribilon.

Ekzemple, atakanto povus agordi la parametron process.cwd en kontenera bildo por montri al "/proc/self/fd/7/", kio ligus la procezon pid1 en la ujo al labora dosierujo situanta en la munta spaco de la gastiganta medio. Tiel, la kontenera bildo povus esti agordita por lanĉi "/proc/self/fd/7/../../../bin/bash" kaj, per ekzekuto de ŝelskripto, anstataŭigi la enhavon de "/proc/self/exe", kiu montras al la gastiganta kopio de /bin/bash.

Alia ataka variaĵo permesas al atakanto, limigita ene de ujo, akiri aliron al la dosierujo de la gastiga medio se privilegiitaj procezoj estas lanĉitaj en la specifita ujo uzante la komandon "runc exec" kun la opcio "--cwd". La atakanto povas anstataŭigi la vojon de la lanĉita procezo per simbola ligilo montranta al "/proc/self/fd/7/" kaj atingi malfermon de "/proc/$exec_pid/cwd" por aliri la dosiersistemon ĉe la gastiga flanko. La atakanto ankaŭ povas atingi anstataŭskribon de efektivigeblaj dosieroj ĉe la gastiga medio per organizado de la lanĉo de efektivigebla dosiero el la gastiga medio ("/proc/self/fd/7/../../../bin/bash") kaj poste anstataŭskribo de la dosiero "/proc/$pid/exe" rilatante al la lanĉita dosiero.

Krome, kvin pliaj vundeblecoj estis identigitaj en komponantoj de la ilaro de Docker:

  • CVE-2024-23651 — Konkurkondiĉo en BuildKit, pakaĵo uzata de Docker por transformi fontkodon en konstruajn artefaktojn, estas kaŭzita de la uzo de ununura komuna muntpunkto kun kaŝmemoro ("--mount=type=cache,source=") en paralelaj konstruaj stadioj, kiu permesas aliron al dosieroj en la gastiganta medio el la konstrua ujo dum prilaborado de speciale kreita Dockerfile en BuildKit. La vundebleco estas riparita en BuildKit 0.12.5.
  • CVE-2024-23652 - Eraro dum forigo de malplenaj dosieroj kreitaj por muntpunkto uzante la opcion "--mount" permesas dosierforigon ekster la ujo dum prilaborado de speciale kreita Dockerfile. Ĉi tiu vundebleco estas riparita en BuildKit 0.12.5.
  • CVE-2024-23653 - API-implementa eraro en BuildKit permesas al ujo esti ekzekutita kun pli altaj privilegioj, sendepende de la agordo security.insecure. Ĉi tiu vundebleco estas riparita en BuildKit 0.12.5.
  • CVE-2024-23650 – Malica BuildKit-kliento aŭ fasado povas kaŭzi kraŝon de BuildKit-fona procezo. Ĉi tiu problemo estas riparita en BuildKit 0.12.5.
  • CVE-2024-24557 — Vundebleco de kaŝmemorvenenado en Moby, komponanto por konstrui specialigitajn kontenerajn izolajn sistemojn. Dum prilaborado de speciale kreita kontenera bildo, eblas kaŝmemorigi datumojn, kiuj povas esti uzataj en postaj stadioj de la konstruado. La vundebleco estas riparita en Moby 25.0.2 kaj 24.0.9.

fonto: opennet.ru

Aĉetu fidindan gastigadon por retejoj kun DDoS-protekto, VPS-VDS-serviloj 🔥 Aĉetu fidindan retejan gastigadon kun DDoS-protekto, VPS VDS-servilojn | ProHoster