Padrão de falhas em CI/CD expõe repositórios do GitHub a ataques de cadeia de suprimentos

Padrão de falhas em CI/CD expõe repositórios do GitHub a ataques de cadeia de suprimentos

Pesquisadores identificam a vulnerabilidade composicional Cordyceps, que permite a usuários não autenticados assumir o controle de fluxos de trabalho privilegiados, roubar segredos e comprometer projetos críticos de software livre

ComponenteConfigurações de fluxos de trabalho de CI/CD em repositórios do GitHub (especificamente pipelines que processam Pull Requests, comentários e nomes de ramificações)
VetorSubmissão de Pull Requests maliciosas ou inserção de comentários por contas de usuário gratuitas e não autenticadas, que acionam runners de CI com permissões excessivas
ImpactoExecução arbitrária de código controlada por invasores na infraestrutura de CI, roubo de credenciais de automação e tokens de GitHub App não expiráveis, resultando em comprometimento total da cadeia de suprimentos
PrioridadeAuditar configurações de CI/CD para garantir o princípio do menor privilégio em gatilhos externos, revogar tokens expostos e revisar políticas de execução de pipelines em repositórios públicos e forks
Resumo técnico

Uma nova classe de fraquezas arquiteturais em pipelines de Integração Contínua e Entrega Contínua (CI/CD) foi identificada, permitindo que atacantes assumam o controle de fluxos de trabalho automatizados e comprometam a cadeia de suprimentos de software de código aberto. Batizada de Cordyceps pela empresa de pesquisa de segurança Novee Security, essa vulnerabilidade composicional expõe a fundação da infraestrutura tecnológica global. O problema reside na confiança implícita concedida a dados não confiáveis—como propostas de alteração de código vindas de usuários anônimos—que atravessam fronteiras de segurança sem a devida auditoria lógica nos runners de automação.

A análise sistemática conduzida pelos pesquisadores mapeou aproximadamente 30.000 repositórios de alto impacto no GitHub, revelando que mais de 300 ativos estão totalmente vulneráveis a este padrão explorável. As organizações afetadas incluem gigantes da tecnologia que sustentam grande parte da internet moderna, como Microsoft, Google, Apache, Cloudflare e a Python Software Foundation. A gravidade da falha transcende a simples execução de scripts, pois compromete a integridade do processo de construção e distribuição de software, um risco sistêmico para a infraestrutura global.

De acordo com os pesquisadores, a exploração não exige filiação organizacional, credenciais privilegiadas ou interação humana complexa. Uma conta gratuita no controle de versão é suficiente para engatilhar a cadeia de ataque. Os invasores conseguem forjar aprovações internas, forçar o envio de código malicioso diretamente para os ramos principais e exfiltrar chaves criptográficas vitais. Devido à natureza da automação agnóstica do código moderno, essas vulnerabilidades em CI/CD são clonadas e propagadas de forma persistente, criando um efeito de infecção exponencial no ecossistema de desenvolvimento.

Fluxo técnico

O núcleo do ataque Cordyceps baseia-se em configurações excessivamente permissivas onde Pull Requests (PRs) desfrutam de mais privilégios do que o necessário durante a fase de verificação automatizada. Em um cenário seguro, um PR externo deve ser tratado como conteúdo não confiável. No entanto, devido à má configuração do pipeline, a submissão de código por um usuário anônimo dispara workflows privilegiados. Isso cria uma via direta para injeção de comandos no servidor de CI, escalação de privilégios e, por conseguinte, o sequestro da infraestrutura de desenvolvimento.

A mecânica de exploração varia conforme as características lógicas do pipeline exposto, mas geralmente explora a injeção de script através de entradas não higienizadas. No caso do Apache Doris, foram identificadas falhas de vetor de clique único (zero-click), onde a simples inserção de um comentário em qualquer PR, ou o acionamento de um PR a partir de um fork, execute código malicioso控制在 os runners. O ataque subsequente exfiltra credenciais pré-compiladas (hardcoded) no ambiente de CI ou tokens que possuem permissões totais de escrita no repositório.

Outras plataformas demonstram vetores distintos baseados na mesma quebra de confiança. No Cloudflare Workers SDK, o nome da ramificação (ramificação name) associado a um PR atua como um vetor de injeção de comandos, permitindo a execução de código arbitrário nos servidores de construção da Cloudflare. No ecossistema do Google AI Agent Development Kit, um PR manipulado pode disparar ações no pipeline consequentes que concedem ao atacante controle total sobre o repositório na nuvem. Da mesma forma, no Microsoft Azure Sentinel, um simples comentário em uma proposta de código executa scripts anônimos capazes de roubar chaves de aplicativos de longa duração (non-expiring GitHub App key).

Superfície afetada

O impacto da vulnerabilidade Cordyceps é vasto, atingindo a infraestrutura de software de código aberto que serve como encanamento base para a indústria. A auditoria identificou que a mecânica do ataque afeta diretamente sistemas de automação que confiam cegamente em manipuladores de eventos externos (event triggers). Isso expõe projetos críticos onde a quebra de confiança permite não apenas o roubo de propriedade intelectual, mas também o fornecimento de binários ou pacotes adulterados para milhões de usuários finais.

Sistemas de construção e ambientes de nuvem de grandes provedores Technology estão suscetíveis às configurações falhas herdadas de templates de CI/CD. O problema ilustra uma deficiência arquitetural onde o software funciona exatamente como projetado, mas a composição de suas partes permite que dados não confiáveis fluam para contextos de alta confiança.

  • Microsoft Azure Sentinel: Fluxos de trabalho acionados por comentários em PRs permitem a execução de código anônimo e roubo de chaves de GitHub App de duração indefinida.
  • Google AI Agent Development Kit: Propostas de alteração maliciosas ganham controle total sobre a infraestrutura de ciência de dados e o repositório na nuvem do Google.
  • Cloudflare Workers SDK: A manipulação do nome da ramificação no momento do envio do PR desencadeia a execução arbitrária de comandos nos runners de CI da Cloudflare.
  • Projeto Apache Doris: Mecanismos de clique único permitem que comenta̦r̦ios ou forks executem payloads projetados para exfiltrar credenciais em texto claro e tokens com acesso de gravação amplo.
  • Ferramenta Black (Python Software Foundation): Pull Requests singulares conseguem extrair os tokens de automação vitais usados para aprovar futuras integrações de código-fonte.
Hunting e telemetria

Para equipipes de resposta a incidentes e engenharia de segurança, a detecção da vulnerabilidade Cordyceps exige uma reavaliação rigorosa dos logs de execução de CI/CD e monitoramento de pipelines. A caça às ameaças deve focar na identificação de processos executados dentro do runner que não derivam das etapas prescritas no arquivo de definição de pipeline. O monitoramento contextualizado de contas não autenticadas que acionam trabalhos robóticos de CI precisa ser isolado de execuções auto-hospedadas (self-hosted runners).

O rastreamento da infraestrutura comprometida deve focar em chamadas de sistema anômalas, como acesso não autorizado a memory caches, arquivos de ambiente contendo chaves secretas, e ajustes irritação de permissões por processos filhos do executor de CI.

  • Monitore ativamente as execuções de CI/CD ativadas por forks externos e análise os logs de console da etapa do fluxo de trabalho em busca de comandos inesperados de networking ou download de arquivos de fontes externas.
  • Inspecione auditorias de tokens do GitHub registros de eventos para identificar chamadas de API realizadas a partir de endereços IP não pertencentes à organização logo após a conclusão de pipelines de teste de PR não confiáveis.
  • Verifique se as regras de proteção de ramificação restringem adequadamente a aprovação de PRs, observando(step logs) para automações que aprovam alterações de modo automático baseadas em variáveis profundamente aninhadas manipuladas em comentários.
  • Crie alertas de detecção para chamadas de rede de saída originadas dos runners de CI direcionadas a domínios de compartilhamento de arquivos ou servidores de Comando e Controle (C2) suspeitos imediatamente após a manipulação da variável de nome de ramificação.
Mitigação

A contenção e a prevenção da ameaça Cordyceps envolvem uma reestruturação fundamental na forma como dados não verificados interagem com pipelines de automação. As organizações devem tratar cada contribuição externa como inerentemente hostil até que haja uma validação rigorosa. Os mantenedores do projeto devem auditar a hierarquia de permissões de execução usando os recursos de isolamento e controle nativos da plataforma de versionamento e implementar a contenção de script para evitar injeções de comando via variáveis ​​dinâmicas.

Após a disclosure responsável realizada pela Novee Security, empresas impactadas como Google e Microsoft confirmaram as brechas. Cloudflare, Apache e a Python Software Foundation implementaram endurecimento de configuração e patches corretivos em seus ambientes e dependências. Contudo, o ecossistema global ainda exige weariness proativo contra instâncias reproduzidas desta arquitetura compartilhada.

  • Aplique o princípio do menor privilégio garantindo que gatilhos acionados por Pull Requests de forks ou usuários externos executem runners isolados com o nível mais restritivo de acesso ao ambiente, proibindo o acesso direto a segredos do repositório.
  • Sanitize todas as entradas variáveis usadas em scripts de compilação, como nomes de ramificações e de títulos de PR, garantindo que os dados do usuário não sejam interpretados como comandos do sistema operacional pelo shell do runner.
  • Realize a rotação imediata de todos os tokens de acesso pessoal(PAT), segredos de Actions, chaves de aplicações de longa vida útil e quaisquer credenciais de nuvem comprometidas armazenadas em sistemas anteriormente vulneráveis à execução de código arbitrário.
  • Implemente a autenticação OIDC (OpenID Connect) entre o provedor de CI/CD e os provedores de nuvem, substituindo credenciais estáticas por tokens de vida curta baseados em declarações, reduzindo drasticamente a janela de oportunidade para exfiltração.
  • Revise a lógica dos workflows baseados em eventos de comentário no GitHub, garantindo que a aprovação automatizada de grupos revisores não seja manipulável por usuários não autenticados explorando contextos ocultos.

Postar um comentário

0 Comentários