Google revela uma falha de segurança no GitHub

Project Zero divulgou detalhes de uma grave violação de segurança no GitHub e eles relatam que o erro afeta comandos de fluxo de trabalho de ação do GitHub e é descrito como de alta gravidade. (Este bug foi descoberto em julho, mas sob o período de divulgação padrão de 90 dias, os detalhes só foram divulgados agora.)

Essa falha se tornou uma das poucas vulnerabilidades que não foi corrigida corretamente antes que o prazo padrão de 90 dias concedido pelo Google Project Zero expire.

De acordo com Felix Wilhelm (quem o descobriu), integrante da equipe do Project Zero, a falha afeta a função de ações do GitHub, ferramenta para automatizar o trabalho dos desenvolvedores. Isso ocorre porque os comandos de fluxo de trabalho de Ações são "vulneráveis ​​a ataques de injeção":

“Ações O Github suporta um recurso chamado comandos de fluxo de trabalho como um canal de comunicação entre o corretor de ações e a ação executada. Os comandos de fluxo de trabalho são implementados em / src / Runner.Worker / ActionCommandManager.cs e funcionam analisando STDOUT de todas as ações realizadas procurando por um dos dois marcadores de comando.

Mencione que o grande problema com esse recurso é que ele é muito vulnerável a ataques de injeção. Como o processo de execução verifica cada linha impressa em STDOUT em busca de comandos de fluxo de trabalho, toda ação do GitHub que contém conteúdo não confiável como parte de sua execução é vulnerável.

Na maioria dos casos, a capacidade de definir variáveis ​​de ambiente arbitrárias resulta na execução remota de código assim que outro fluxo de trabalho estiver em execução. Passei algum tempo examinando repositórios GitHub populares e quase todos os projetos que usam ações GitHub ligeiramente complexas são vulneráveis ​​a esse tipo de bug.

Mais tarde, deu alguns exemplos de como o bug pode ser explorado e também sugeriu uma solução:

“Eu realmente não tenho certeza de qual é a melhor maneira de consertar isso. Acho que a maneira como os comandos de fluxo de trabalho são implementados é fundamentalmente insegura. A depreciação da sintaxe do comando v1 e o reforço doet-env com uma lista de permissões provavelmente funcionaria contra os vetores RCE diretos.

“No entanto, mesmo a capacidade de substituir as variáveis ​​de ambiente 'normais' usadas em etapas posteriores é provavelmente suficiente para explorar as ações mais complexas. Nem analisei o impacto de segurança de outros controles no espaço de trabalho.

Por outro lado, mencione que uma boa solução de longo prazo seria mover os comandos do fluxo de trabalho para um canal separado (por exemplo, um novo descritor de arquivo) para evitar a análise por STDOUT, mas isso quebrará muitos códigos de ação existentes.

Quanto ao GitHub, seus desenvolvedores postaram um aviso em 1º de outubro e descontinuaram os comandos vulneráveis, mas argumentaram que o que Wilhelm descobriu era na verdade uma "vulnerabilidade de segurança moderada". O GitHub atribuiu o identificador de bug CVE-2020-15228:

“Uma vulnerabilidade de segurança moderada foi identificada no tempo de execução do GitHub Actions, que pode permitir a injeção de caminhos e variáveis ​​de ambiente em fluxos de trabalho que registram dados não confiáveis ​​em STDOUT. Isso pode levar à introdução ou modificação de variáveis ​​de ambiente sem a intenção do autor do fluxo de trabalho.

“Para nos ajudar a resolver esse problema e permitir que você defina variáveis ​​de ambiente dinamicamente, introduzimos um novo conjunto de arquivos para lidar com atualizações de ambiente e caminho em fluxos de trabalho.

“Se você estiver usando corretores auto-hospedados, certifique-se de que eles estejam atualizados para a versão 2.273.1 ou superior.

De acordo com Wilhelm, em 12 de outubro, o Project Zero contatou o GitHub e ofereceu proativamente uma janela de 14 dias se o GitHub quisesse mais tempo para desabilitar os comandos vulneráveis. Claro, a oferta foi aceita e o GitHub esperava desabilitar os comandos vulneráveis ​​depois de 19 de outubro. O Project Zero então definiu a nova data de divulgação para 2 de novembro.

fonte: https://bugs.chromium.org


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.