- Início
- The Thinking Wire
- Do Título da Issue ao Malware: O Ataque à Cadeia de Suprimentos em Cinco Passos
Do Título da Issue ao Malware: O Ataque à Cadeia de Suprimentos em Cinco Passos
Um desenvolvedor abre uma issue no GitHub. Digita um título. O título não descreve um bug.
O título contém instruções projetadas para enganar um bot de triagem com inteligência artificial. Instruções que o bot interpretará como legítimas. Instruções que iniciarão uma sequência de cinco estágios terminando em malware distribuído pelo registro npm oficial.
Isso aconteceu em fevereiro de 2026. O ataque se chama Clinejection. É o primeiro caso documentado em que linguagem natural, sem nenhum código executável, comprometeu uma cadeia de suprimentos de software do início ao fim.
Os Cinco Passos
Cada etapa do Clinejection explora uma premissa diferente. Juntas, formam uma cadeia que nenhum controle pontual conseguiria interromper.
Passo 1: Linguagem natural como vetor. O atacante cria uma issue no repositório do Cline no GitHub. O título contém uma injeção de prompt disfarçada de descrição técnica. Nenhum arquivo anexo. Nenhum link malicioso. Apenas texto.
Passo 2: O bot obedece. O repositório usa um agente de IA para classificar issues automaticamente. O agente lê o título, interpreta as instruções embutidas como parte da sua tarefa, e executa código no ambiente de CI/CD. A fronteira entre “processar texto” e “executar comando” desaparece no momento em que o agente tem acesso a ferramentas.
Passo 3: Cache envenenado. O código executado pelo bot altera o cache do pipeline de build. Essa alteração persiste entre execuções. Na próxima build legítima, o cache contaminado será carregado como se fosse confiável.
Passo 4: Credenciais roubadas. A build seguinte, operando com o cache envenenado, extrai três tokens do ambiente: NPM_RELEASE_TOKEN, VSCE_PAT e OVSX_PAT. Tokens de publicação para o npm, Visual Studio Marketplace e Open VSX. Com esses três artefatos, o atacante controla o canal de distribuição inteiro.
Passo 5: Malware publicado. Usando os tokens, o atacante publica cline@2.3.0 no registro npm. Versão legítima, canal legítimo, assinatura legítima. Aproximadamente 4.000 desenvolvedores instalaram o pacote comprometido em oito horas antes da detecção.
Oito horas. De um título de issue a quatro mil máquinas comprometidas.
O Que a Timeline Revela
A cronologia do ataque expõe um problema mais profundo que a técnica em si.
Em 1º de janeiro de 2026, um pesquisador reporta a vulnerabilidade no bot de triagem. O time do Cline não responde. Em 28 de janeiro, a issue maliciosa é criada. Em 9 de fevereiro, um token é revogado por suspeita de comprometimento. O token errado. Os tokens legados permanecem ativos porque o repositório habilitou autenticação OIDC sem desabilitar os métodos anteriores. Em 17 de fevereiro, o pacote malicioso é publicado.
Quarenta e sete dias entre o primeiro aviso e o ataque consumado. A vulnerabilidade não foi explorada antes de ser reportada. Foi reportada, ignorada, e então explorada.
Como exploramos na análise da semana do ataque, injeção de prompt foi a ignição. Configurações convencionais foram o combustível. Tokens legados coexistindo com OIDC. Credenciais de publicação acessíveis a processos de build. Cache compartilhado sem validação de integridade.
Cinco Premissas Quebradas
O Clinejection não inventou nenhuma técnica nova. Cada passo explora uma premissa que a maioria das equipes aceita sem questionar.
Premissa 1: “Texto não é código.” É, quando o consumidor é um agente de IA com acesso a ferramentas. A Snyk chama esse padrão de “toxic flow”: dados não confiáveis fluindo para um contexto de agente que tem capacidade de execução.
Premissa 2: “Bots de triagem são inofensivos.” São, até receberem permissão para executar código. A questão não é o que o bot faz normalmente. É o que ele pode fazer quando recebe instruções inesperadas.
Premissa 3: “Cache é infraestrutura interna.” Cache é um vetor de persistência. Se um processo não autorizado pode modificá-lo, qualquer build subsequente está comprometida.
Premissa 4: “Tokens legados são inofensivos se temos OIDC.” Tokens legados são portas que você esqueceu de trancar. OIDC adiciona uma porta nova. Não elimina as antigas.
Premissa 5: “O registro npm valida pacotes.” O registro valida credenciais, não intenções. Se o token é legítimo, o pacote é publicado. Ponto final.
O Contexto Mais Amplo
O Clinejection não aconteceu no vácuo. Na mesma semana, o relatório da Cloudflare registrou que 63% dos logins corporativos usam credenciais previamente vazadas. Noventa e quatro por cento das tentativas de login são de bots. DDoS bateu recorde a 31,4 Tbps.
Esses números descrevem o mesmo cenário por ângulos diferentes. Credenciais comprometidas circulam. Automação maliciosa opera em escala. E as ferramentas que usamos para acelerar desenvolvimento (agentes de IA, bots de triagem, pipelines automatizados) amplificam tanto a produtividade quanto a superfície de ataque.
Como detalhamos na análise do GitHub Actions como vetor, o padrão é consistente: conveniência adotada sem governança se torna o vetor preferido.
O Que Fazer com Isso
O Clinejection oferece cinco lições operacionais concretas.
Primeira: audite as permissões de todo agente de IA que opera na sua infraestrutura. Se um bot de triagem pode executar código, ele não é um bot de triagem. É um vetor de ataque com acesso privilegiado.
Segunda: elimine tokens legados. Se você habilitou OIDC, desabilite todos os métodos de autenticação anteriores no mesmo dia.
Terceira: valide a integridade do cache entre builds. Cache sem verificação de hash é um convite para persistência de atacante.
Quarta: segmente credenciais de publicação. Tokens de publicação npm, VS Code Marketplace e Open VSX não devem ser acessíveis ao mesmo processo de build que compila código.
Quinta: trate divulgação de vulnerabilidade como incidente, não como sugestão. Quarenta e sete dias de silêncio entre um report válido e um ataque bem-sucedido é uma falha de processo, não de tecnologia.
O Clinejection é o primeiro ataque documentado que percorre a cadeia completa: linguagem natural, agente de IA, infraestrutura de build, registro público, máquinas de desenvolvedores. Não será o último. A única pergunta é se sua infraestrutura ainda opera sob as cinco premissas que esse ataque invalidou.
Fontes
- Grith.ai. “Clinejection: The AI-Powered Supply Chain Attack.” Março 2026.
- Cloudflare. “DDoS Threat Report 2026 Q1.” Março 2026.
- Snyk Security Research. “Toxic Flows in AI Agent Architectures.” Fevereiro 2026.
Victorino Group ajuda organizações a identificar e corrigir premissas de segurança em infraestrutura com agentes de IA: contato@victorino.com.br | www.victorino.com.br
Se isso faz sentido, vamos conversar
Ajudamos empresas a implementar IA sem perder o controle.
Agendar uma Conversa