A empresa de segurança Novee revelou que o Cordyceps é uma classe de vulnerabilidades exploráveis em CI/CD em repositórios de código aberto, que permitiu que invasores roubassemdent, enviassem código malicioso e comprometessem as operações de algumas das maiores organizações de software do mundo.
Essas vulnerabilidades foram encontradas em repositórios pertencentes à Microsoft, Google, Apache, Cloudflare e à Python Software Foundation, empresas que também afirmaram tê-las corrigido.
A empresa de segurança Novee descobriu uma nova e perigosa classe de vulnerabilidades em pipelines de CI/CD, que denominou "Cordyceps". O nome "Cordyceps" vem de um fungo parasita que se apodera de seu hospedeiro, pois essa falha permite que qualquer pessoa com uma conta gratuita no GitHub assuma o controle de projetos populares de código aberto.
As vulnerabilidades foram descobertas em repositórios pertencentes à Microsoft, Google, Apache, Cloudflare e à Python Software Foundation. Uma única varredura de 30.000 repositórios revelou 300 cadeias de ataque totalmente exploráveis.
Os atacantes conseguem roubardent, injetar código malicioso e comprometer as cadeias de suprimentos de software por meio dessas vulnerabilidades. Os problemas foram corrigidos, mas os pesquisadores alertam que os assistentes de codificação de IA continuarão a reproduzi-los em milhões de repositórios.
Os fluxos de trabalho do GitHub Actions lidam com tarefas importantes, como executar testes, compilar software e publicar versões, mas geralmente são tratados como simples arquivos de configuração em vez de código crítico para a segurança.
A cadeia de ataque geralmente começa quando um agente externo, que pode ser qualquer pessoa com uma conta gratuita no GitHub, envia uma solicitação de pull request ou deixa um comentário em um repositório público. Um fluxo de trabalho com privilégios reduzidos, que aceita a contribuição do agente externo como se fossem dados confiáveis, é então ativado.
A partir daí, o fluxo de saída segue para um segundo fluxo de trabalho executado com permissões elevadas. Esse segundo fluxo de trabalho pode conter tokens de autenticação do provedor de nuvem,dentdo registro de pacotes ou chaves de assinatura. Nesse ponto, o invasor pode roubar tokens que não expiram ou comprometer permanentemente o repositório.
Segundo pesquisadores de segurança, cada etapa individual nessas cadeias pode passar por uma auditoria de segurança por si só. A vulnerabilidade só aparece quando alguém traco caminho de dados não confiáveis ao longo de toda a sequência de transferências do fluxo de trabalho.
A Novee encontrou e relatou vulnerabilidades confirmadas em algumas das maiores organizações de tecnologia do mundo.
O Azure Sentinel da Microsoft, por exemplo, continha um comentário em uma solicitação de pull request que poderia desencadear a execução de código malicioso na infraestrutura de CI da Microsoft e roubar uma chave de aplicativo do GitHub que não expira. Essa chave teria concedido acesso de gravação persistente ao conteúdo de detecção de segurança que a Microsoft distribui para os espaços de trabalho do Sentinel dos clientes.
O repositório do Kit de Desenvolvimento de Agentes de IA do Google, com mais de 9.200 estrelas no GitHub, tinha uma falha em que uma única solicitação de pull request poderia permitir que um invasor obtivesse o nível de permissão mais alto (funções/proprietário) no projeto associado do Google Cloud.
No banco de dados Doris Analytics da Apache, pesquisadores encontraram duas vias de ataque sem cliques. Uma permitia que um comentário em qualquer solicitação de pull roubassedentde CI embutidas no código, enquanto a outra permitia que uma solicitação de pull bifurcada roubasse um token com permissões totais de gravação em todo o código, pacotes e páginas.
O SDK Workers da Cloudflare, construído em torno do conjunto de ferramentas Wrangler CLI, era vulnerável à execução de comandos arbitrários acionada por um nome de branch especialmente criado.
O formatador de código Black da Python Software Foundation, que possui mais de 130 milhões de downloads, tinha uma falha que permitia que qualquer solicitação de pull request roubasse o token do bot de automação do projeto, que então podia aprovar outras solicitações de pull request.
Novee confirmou ao Dark Reading que nenhum desses padrões de fluxo de trabalho foi explorado antes da aplicação das correções.
Meged recomenda que os CISOs tratem os arquivos de fluxo de trabalho CI/CD como código crítico para a segurança.
Se você está lendo isto, já está um passo à frente. Continue assim assinando nossa newsletter.