Falha no runC permite que hackers escapem de containers do Linux para obter root de hosts

Uma séria vulnerabilidade de segurança foi descoberta no núcleo do código do runC container que afeta vários sistemas de gestão open-source, potencialmente fazendo com que hackers consigam escapar do contâiner da Linux e obtenham acesso de nível root não autorizado ao domínio do sistema operacional do host.

A vulnerabilidade detectada como CVE-2019-5736, foi descoberta pelos pesquisadores de segurança open source Adam Iwaniuk e Borys Popławski e o disclosure feito por Aleksa Sarai, uma engenheira de software sênior e mantedora do runC na SUSE Linux GmbH na segunda-feira. A falha reside no runC- uma ferramenta de linha de comando leve e de baixo nível para gerar e executar contâiners, um método de virtualização em nível de sistema operacional para executar vários sistemas isolados em um host usando um único kernel.

Originalmente criado pelo Docker, runC é o tempo de execução padrão do contâiner para Docker, Kubernetes, ContainerD, CRI-O e outros programas dependentes de contâiners e está sendo amplamente usado pelos principais provedores de hospedagem e de servidores na nuvem. RunC contâiner escapa da vulnerabilidade [CVE-2019-5736] Apesar dos pesquisadores não terem liberado ainda um detalhes técnicos completos da falha para dar o tempo das pessoas consertarem, a consultora Red Hat disse que “a falha foi encontrada no jeito em que o sistema do RunC lida com descritores de arquivos ao executar contâiners.”

Assim, um container mal-intencionado especialmente criado ou um invasor com acesso root a um contêiner pode explorar essa falha (com interação mínima do usuário) para obter privilégios administrativos na máquina host que está executando o contêiner, comprometendo as centenas de milhares de outros contêineres funcionando nele.

Para o acesso root pelo container, o hacker deve: ou criar um novo container usando uma imagem controlada pelo hacker, ou attach (comando docker) em um container existente que o atacante tenha previamente escrito o acesso. “Um container malicioso (então) poderia usar essa falha para reescrever conteúdos do runC binário e consequentemente rodar comandos arbitrários no container do sistema do host,” o consultor disse.

O quão ruim é essa vulnerabilidade? Scott McCarty, o principal gerente de produtos para containers no Red Hat, disse, “Embora haja poucos incidentes que possam se qualificar como um cenário apocalíptico para a TI corporativa, um conjunto em cascata de explorações que afetam uma ampla variedade de sistemas de produção interconectados se qualifica… e é exatamente isso que essa vulnerabilidade representa.” Falha runC: atualizações do patch de segurança e mitigação De acordo com Red Hat, a vulnerabilidade pode ser mitigada se o SELinux no modo de aplicação direcionada estiver ativado, o que é padrão no RedHat Enterprise Linux, CentOS e Fedora.

Os mantenedores do runC publicaram um git commit para resolver a falha de segurança, mas todos os projetos construídos sobre o runC precisam incorporar os patches em seus produtos. Debian e Ubuntu também tem o conhecimento que as suas distribuições Linux estão vulneraveis a essa falha reportada. O problema também afeta os sistemas de contêiner usando o LXC, uma ferramenta de contêiner do Linux que antecede o Docker e o código do contêiner do Apache Mesos.

Grandes fornecedores e provedores de serviços em nuvem já estão fazendo correções de segurança para resolver o problema, incluindo o Google, Amazon, Docker e Kubernetes. Rancher, o criador do software de gerenciamento de código aberto Kubernetes, também publicou um script de patch para versões herdadas do Docker. Se você estiver executando qualquer tipo de contêiner, saiba que está vulnerável e atualize para uma imagem com uma versão fixa do runC assim que estiver disponível para evitar ataques cibernéticos.

Fonte The Hacker News

Adriano Lopes

Adriano Lopes é o criador e proprietário do MundoHacker.net.br. Desenvolvedor Web, Hacker Ético, Programador C, Python, Especialista em Segurança da Informação.