En Kit de herramientas para gestionar contenedores Docker aislados de Linux
La vulnerabilidad permite extraer archivos de un contenedor a una parte arbitraria del sistema de archivos del sistema host al ejecutar el comando "docker cp". La extracción de archivos se realiza con derechos de root, lo que permite leer o escribir cualquier archivo en el entorno del host, lo cual es suficiente para obtener el control del sistema host (por ejemplo, puede sobrescribir /etc/shadow).
El ataque sólo puede llevarse a cabo cuando el administrador ejecuta el comando “docker cp” para copiar archivos hacia o desde el contenedor. Por lo tanto, el atacante debe convencer de alguna manera al administrador de Docker de la necesidad de realizar esta operación y predecir la ruta utilizada al copiar. Por otro lado, se puede llevar a cabo un ataque, por ejemplo, cuando los servicios en la nube proporcionan herramientas para copiar archivos de configuración en un contenedor, creado mediante el comando "docker cp".
El problema se debe a un fallo en la aplicación de la función.
Dado que la ventana de tiempo para que ocurra una condición de carrera es muy limitada en un
Al realizar una operación de copia en un contenedor, puede lograr un ataque de sobrescritura de archivos repetible en el sistema host en tan solo unas pocas iteraciones. La posibilidad de un ataque se debe al hecho de que al copiar en un contenedor se utiliza el concepto "chrootarchive", según el cual el proceso archive.go extrae el archivo no en el chroot de la raíz del contenedor, sino en el chroot del directorio principal de la ruta de destino, controlado por el atacante, y no detiene la ejecución del contenedor (chroot se usa como señal para explotar las condiciones de carrera).
Fuente: opennet.ru