22/11/2024 +55 (83) 98773-3673

Tecnologia

Andre@zza.net

Alerta de vulnerabilidade de escape do contêiner Runc

Por Blog do Elias Hacker 29/02/2024 às 10:06:14

Foto: Reprodução.

Recentemente, o NSFOCUS Labs, laboratório de inteligência da NSFOCUS, detectou que o runc emitiu oficialmente um aviso de segurança e corrigiu uma vulnerabilidade de escape de contêiner (CVE-2024-21626). Runc é uma ferramenta CLI dedicada para a construção e execução de contêineres no Linux de acordo com a especificação OCI. Runc é executado em contêineres como Docker, containerd, Podman e CRI-O por padrão que possui uma ampla gama de aplicações e suporta vários formatos e podem ser executados diretamente sem o mecanismo docker.

A descoberta alerta que como o descritor de arquivo interno do runc vaza durante a inicialização e o diretório de trabalho final não é verificado para estar localizado no namespace de montagem do contêiner, os invasores podem realizar o escape de três maneiras:

  1. Como o runc vaza alguns descritores de arquivo, incluindo o identificador host /sys/fs/cgroup para runc init, se o contêiner estiver configurado como process.cwd, quando um usuário privilegiado executa o espelhamento malicioso do contêiner, o processo PID1 gerado terá um diretório de trabalho no namespace da montagem do host, resultando no acesso a todo o sistema de arquivos do host;
  2. Como o runc exec também sofre com o vazamento do descritor de arquivo e a falta de validação do diretório de trabalho, se um processo malicioso no contêiner souber que um processo de gerenciamento chamará o runc exec com o parâmetro – cwd e o caminho fornecido, ele poderá substituir esse caminho por /proc/self/fd/7/ usando um link simbólico. Depois que o processo executa um binário na imagem do contêiner, a proteção PR_SET_DUMPABLE pode ser ignorada, fazendo com que o invasor acesse o sistema de arquivos do host abrindo /proc/$exec_pid/cwd.
  3. Os ataques 1 e 2 podem sobrescrever os binários do host usando um caminho como /proc/self/fd/7/../../bin/bash como o parâmetro binário process.args. Com essa vulnerabilidade, o invasor pode obter acesso total ao host assim que um usuário executar o binário de destino nele.

Escopo do Impacto

Versão afetada

1.0.0-rc93 <= runc <= 1.1.11

Versão não afetada

runc >= 1.1.12

Mitigação

Comunicar erro
Comentários