Vulnerabilitat en runc que permet escapar dels contenidors Docker i Kubernetes

Al conjunt d'eines runc per executar contenidors aïllats utilitzat a Docker i Kubernetes, es va trobar una vulnerabilitat CVE-2024-21626, que permet accedir al sistema de fitxers de l'entorn amfitrió des d'un contenidor aïllat. Durant un atac, un atacant pot sobreescriure alguns fitxers executables a l'entorn amfitrió i així aconseguir l'execució del seu codi fora del contenidor. En runtime crun i youki, que utilitzen runc, així com en LXC, el problema no apareix. La vulnerabilitat es va solucionar a runc 1.1.12.

Quan s'utilitzen eines Docker o Kubernetes, es pot dur a terme un atac preparant una imatge de contenidor especialment dissenyada, després de la instal·lació i llançament de la qual es pot accedir a un FS extern des del contenidor. Quan s'utilitza Docker, és possible operar mitjançant un Dockerfile especialment dissenyat. La vulnerabilitat també es pot explotar si els processos s'inicien en un contenidor mitjançant l'ordre "runc exec" lligant el directori de treball a l'espai de noms de l'entorn amfitrió.

La vulnerabilitat és causada per la fuga de descriptors de fitxers interns. Abans d'executar codi dins del contenidor, runc tanca tots els descriptors de fitxers utilitzant el senyalador O_CLOEXEC. Tanmateix, les execucions setcwd() posteriors deixen obert un descriptor de fitxer que apunta al directori de treball i segueix sent accessible després d'iniciar el contenidor. S'han proposat diversos escenaris bàsics per atacar l'entorn amfitrió mitjançant el descriptor de fitxers restants.

Per exemple, un atacant podria especificar un paràmetre process.cwd a la imatge del contenidor que apunta a "/proc/self/fd/7/", cosa que donaria lloc a una vinculació per processar pid1 al directori de treball del contenidor, situat a l'entorn de l'amfitrió. muntar espai. Així, a la imatge del contenidor, podeu configurar el llançament de “/proc/self/fd/7/../../../bin/bash” i, mitjançant l'execució d'un script shell, sobreescriure el contingut de "/proc/self/exe", que fa referència a la còpia de /bin/bash de l'amfitrió.

Una altra variant d'atac permet que un atacant restringit dins d'un contenidor tingui accés al directori de l'entorn amfitrió si s'executen processos privilegiats al contenidor especificat mitjançant l'ordre "runc exec" amb l'opció "--cwd". Un atacant pot substituir el camí del procés llançat per un enllaç simbòlic que apunte a "/proc/self/fd/7/" i aconseguir l'obertura de "/proc/$exec_pid/cwd" per accedir al FS al costat de l'amfitrió. Un atacant també pot aconseguir sobreescriure els fitxers executables al costat de l'entorn amfitrió organitzant el llançament d'un fitxer executable des de l'entorn amfitrió ("/proc/self/fd/7/../../../bin/ bash") i després sobreescriure el fitxer " /proc/$pid/exe", que fa referència al fitxer en execució.

A més, s'han identificat cinc vulnerabilitats més als components del conjunt d'eines Docker:

  • CVE-2024-23651 és una condició de carrera al paquet BuildKit que utilitza Docker per convertir el codi font en artefactes de compilació. La vulnerabilitat és causada per l'ús d'un únic punt de muntatge comú amb una memòria cau ("—mount=type=cache,source=") en etapes de construcció executades simultàniament, que permet, quan es processa un Dockerfile especialment dissenyat a BuildKit, l'accés als fitxers. a l'entorn amfitrió des del contenidor de compilació. La vulnerabilitat s'ha solucionat a BuildKit 0.12.5.
  • CVE-2024-23652 Un error en la supressió de fitxers buits creats per a un punt de muntatge quan s'utilitza l'opció "--mount" permet la supressió d'un fitxer fora del contenidor quan es processa un Dockerfile especialment dissenyat. La vulnerabilitat s'ha solucionat a BuildKit 0.12.5.
  • CVE-2024-23653 Una fallada en la implementació de l'API a BuildKit permet que l'execució del contenidor es produeixi amb privilegis elevats, independentment de l'estat de la configuració security.insecure. La vulnerabilitat s'ha solucionat a BuildKit 0.12.5.
  • CVE-2024-23650 Un client o interfície de BuildKit maliciós pot provocar que es bloquegi un procés de BuildKit en segon pla. La vulnerabilitat s'ha solucionat a BuildKit 0.12.5.
  • CVE-2024-24557 és una possible intoxicació de la memòria cau a Moby, un component per construir sistemes especialitzats d'aïllament de contenidors. En processar una imatge de contenidor especialment dissenyada, podeu emmagatzemar dades a la memòria cau que es poden utilitzar en els passos de creació posteriors. La vulnerabilitat s'ha solucionat a Moby 25.0.2 i 24.0.9.

Font: opennet.ru

Compreu allotjament fiable per a llocs amb protecció DDoS, servidors VPS VDS 🔥 Compra allotjament web fiable amb protecció DDoS, servidors VPS VDS | ProHoster