
CVE-2024-21626-poc-research-Reappearance-andtodo
Explotación:
docker-compose up
Verificación: si se obtiene el /etc/passwd del host, la vulnerabilidad está presente.
Entorno: runc: >=v1.0.0-rc93,<=1.1.11
Detalles y principio del ataque: En las versiones afectadas de runc, debido a que se filtran algunos descriptores de archivo internos durante el proceso de inicialización, incluido un manejador del /sys/fs/cgroup del host, runc no verifica si el directorio de trabajo final se encuentra dentro del namespace de montaje del contenedor. Un atacante puede modificar la configuración process.cwd a /proc/self/fd/7 o reemplazar la ruta específica pasada en el parámetro --cwd al invocar runc exec desde el host por un enlace simbólico /proc/self/fd/7/, permitiendo así que los procesos dentro del contenedor accedan y operen sobre el sistema de archivos del host, evadiendo el mecanismo de aislamiento del contenedor. Más detalles (imagen gif):

CVE: CVE - CVE-2024-21626 (mitre.org)
Descubridor de esta vulnerabilidad: CVE-2024-21626 runc process.cwd y fds filtrados: fuga del contenedor | Snyk (snyk.io)

El fd real puede variar según el orden de apertura de los archivos; se puede usar el siguiente script para realizar fuerza bruta.
/// #!/bin/bash
for i in {3..10} do # 使用变量构造工作目录,并运行容器 docker run -w /proc/1/fd/$i ubuntu cat ../../../../../etc/passwd done ///
Prueba local exitosa:
fd/9 lo logra, runc-version: 1.1.10 1.1.2

Cuando runc --version es 1.0.0

Cuando runc --version es 1.1.4, fd/8 lo logra

Esta vulnerabilidad acaba de salir hoy. A continuación, se presentan más detalles.
Se puede reproducir con los siguientes métodos:
todo: Obtener df mediante puntos de interrupción de runc para implementar la automatización.