CVE-2019-5736 é outra vulnerabilidade Linux descoberto no código recipiente Runc núcleo. A ferramenta Runc é descrito como um peso leve, implementação portátil do formato aberto Container (OCF) que proporciona tempo de execução do recipiente.
Detalhes técnicos CVE-2019-5736
A falha de segurança afeta potencialmente vários sistemas de gerenciamento de contêiner de código aberto. disse brevemente, a falha permite que os invasores sejam não autorizados, acesso root ao sistema operacional host, escapando assim do contêiner Linux.
Em termos mais técnicos, a vulnerabilidade:
permite que os invasores sobrescrevam o binário runc do host (e, consequentemente, obter acesso root ao host) aproveitando a capacidade de executar um comando como root em um desses tipos de contêineres: (1) um novo contêiner com uma imagem controlada pelo invasor, ou (2) um contêiner existente, ao qual o invasor tinha acesso de gravação anteriormente, que pode ser anexado com docker exec. Isso ocorre devido ao manuseio incorreto do descritor de arquivo, relacionado a / proc / self / exe, como explicado no consultivo oficial.
A vulnerabilidade CVE-2019-5736 foi descoberta pelos pesquisadores de segurança de código aberto Adam Iwaniuk e Borys Popławski. Contudo, foi divulgado publicamente por Aleksa Sarai, um engenheiro de software sênior e mantenedor runC da SUSE Linux GmbH na segunda-feira.
“Eu sou um dos mantenedores do runc (o tempo de execução do contêiner subjacente no Docker, cri-o, contêiner, Governadores, e assim por diante). Recentemente, relatamos uma vulnerabilidade que verificamos e temos um
patch para," Você será escrevi.
O pesquisador também disse que um usuário malicioso seria capaz de executar qualquer comando (não importa se o comando não é controlado pelo invasor) como root em um contêiner em qualquer um desses contextos:
– Criar um novo contêiner usando uma imagem controlada pelo invasor.
– Anexando (docker exec) em um contêiner existente ao qual o invasor tinha acesso de gravação anterior.
Também deve ser observado que CVE-2019-5736 não é bloqueado pela política AppArmor padrão, nem
pela política padrão do SELinux no Fedora[++], devido ao fato de que os processos de contêiner parecem estar em execução como container_runtime_t.
Não obstante, a falha é bloqueada pelo uso correto de namespaces de usuário, onde a raiz do host não é mapeada para o namespace de usuário do contêiner.
Patch e mitigação CVE-2019-5736
A Red Hat diz que a falha pode ser mitigada quando o SELinux é habilitado no modo de aplicação direcionado, uma condição que vem por padrão no RedHat Enterprise Linux, CentOS, e Fedora.
Também existe um patch lançado pelos mantenedores do runC disponível no GitHub. Observe que todos os projetos que são baseados em runC devem aplicar os próprios patches.
Quem é afetado?
Debian e Ubuntu são vulneráveis à vulnerabilidade, bem como sistemas de contêiner executando LXC, uma ferramenta de contêiner do Linux antes do Docker. O código do contêiner Apache Mesos também é afetado.
Empresas como o Google, Amazonas, Docker, e o Kubernetes também lançaram correções para a falha.