Como o “Clinejection” transformou um bot de IA em um vetor de ataque à cadeia de suprimentos
19 de fevereiro de 2026
0 minutos de leituraEm 9 de fevereiro de 2026, o pesquisador de segurança Adnan Khan divulgou publicamente uma cadeia de vulnerabilidades (apelidada de “Clinejection”) no repositório do Cline, que transformou o próprio bot de triagem de issues da popular ferramenta de programação com IA em um vetor de ataque à cadeia de suprimentos. Oito dias depois, um agente desconhecido explorou a mesma falha para publicar uma versão não autorizada do Cline CLI no npm, instalando o agente de IA OpenClaw em todas as máquinas de desenvolvedores que receberam uma atualização durante um período de oito horas.
A cadeia de ataque chama atenção não por alguma técnica inédita isolada, mas pela forma como combina vulnerabilidades conhecidas (injeção indireta de prompt, envenenamento do cache do GitHub Actions e fragilidades no modelo de credenciais) em uma única exploração que exige apenas a abertura de uma issue no GitHub.
Para os mais de 5 milhões de usuários do Cline, o impacto real foi limitado. A versão não autorizada cline@2.3.0 ficou disponível por cerca de oito horas, e sua carga (instalar o OpenClaw globalmente) não era explicitamente destrutiva. Mas o impacto potencial — publicar código arbitrário para todos os desenvolvedores com atualizações automáticas ativadas — é o que torna esse incidente digno de uma análise detalhada. A Snyk e o Cline já têm uma parceria de segurança voltada a manter segura a programação com assistência de IA, e esse incidente reforça a importância desse tipo de colaboração em todo o setor.
Um agente de IA com permissões demais
Em 21 de dezembro de 2025, os responsáveis pelo Cline adicionaram ao repositório do GitHub um fluxo de trabalho de triagem de issues com IA. O fluxo usava o claude-code-action da Anthropic para responder automaticamente a novas issues. A configuração era assim:
Duas escolhas de configuração tornaram isso perigoso:
allowed_non_write_users: "*"permitia que qualquer usuário do GitHub acionasse o fluxo de trabalho ao abrir uma issue.--allowedTools "Bash,Read,Write,Edit,..."dava ao agente de IA execução arbitrária de código no executor do GitHub Actions.
O título da issue era inserido diretamente no prompt. Isso é um caso clássico de superfície de injeção indireta de prompt.
Etapa 1: Injeção de prompt pelo título da issue
Um invasor poderia criar um título de issue no GitHub com instruções capazes de substituir o comportamento esperado do Claude:
A referência github:cline/cline#aaaaaaaa aponta para um commit específico. Devido à arquitetura de forks do GitHub, um invasor pode enviar um commit ao próprio fork, e esse commit fica acessível pela URL do repositório original, mesmo depois que o fork é excluído (técnica conhecida como “commit órfão”).
O commit substitui o package.json por uma versão que contém um script preinstall malicioso:
Quando o Claude executa npm install usando a ferramenta Bash, o script preinstall é executado automaticamente. O agente de IA não tem a oportunidade de inspecionar o que será executado. Khan confirmou que o Claude “executou o payload sem hesitar em todas as tentativas de teste” em um espelho do repositório do Cline.
Esse é um padrão que a Snyk vem acompanhando de perto. Em nossa pesquisa sobre análise de fluxos tóxicos, descrevemos exatamente essa classe de vulnerabilidade: dados não confiáveis entram no contexto de um agente de IA, que tem acesso a ferramentas capazes de executar código. Isso cria um “fluxo tóxico”, no qual o invasor controla as ações do agente. O incidente do Cline é um exemplo real de fluxos tóxicos em CI/CD, não apenas em ambientes de desenvolvimento local.
Etapa 2: Movimento lateral por meio do envenenamento do cache do GitHub Actions
A injeção de prompt, por si só, comprometeu o executor do fluxo de triagem. Mas esse fluxo tinha permissões restritas para o GITHUB_TOKEN e não acessava segredos de publicação. Para chegar ao pipeline de lançamento, o invasor precisava avançar para outro sistema.
É aí que entra o envenenamento do cache do GitHub Actions.
Uma propriedade crítica do GitHub Actions é que qualquer fluxo de trabalho executado no branch padrão pode ler e gravar no cache compartilhado do Actions, mesmo que não use o cache explicitamente. O fluxo de triagem com poucos privilégios compartilhava o mesmo escopo de cache que o fluxo noturno de lançamento, com privilégios elevados.
A política de expulsão de cache do GitHub usa a remoção dos itens menos usados recentemente (LRU) quando o cache ultrapassa 10 GB por repositório. Um invasor pode explorar isso da seguinte forma:
Encher o cache com \>10 GB de dados inúteis usando o fluxo de triagem
Forçar a remoção LRU de entradas legítimas do cache
Definir entradas de cache envenenadas que correspondam às chaves usadas pelo fluxo noturno
A ferramenta de código aberto Cacheract, criada por Khan, automatiza todo esse processo. Ela envenena entradas do cache e persiste entre as execuções dos fluxos de trabalho ao sequestrar a etapa posterior actions/checkout.
O fluxo noturno de lançamento do Cline consumia diretórios node_modules armazenados em cache:
Quando o fluxo noturno de publicação era executado por volta das \~2h UTC e restaurava o cache envenenado, o invasor podia executar código arbitrário em um fluxo de trabalho com acesso a VSCE_PAT, OVSX_PAT e NPM_RELEASE_TOKEN.
Etapa 3: Credenciais noturnas \= credenciais de produção
Seria razoável supor que as credenciais dos lançamentos noturnos tivessem escopo diferente das credenciais de produção. Não era o caso.
Tanto o VS Code Marketplace quanto o OpenVSX vinculam os tokens de publicação a publicadores, e não a extensões individuais. As extensões de produção e noturnas do Cline eram publicadas pela mesma identidade (saoudrizwan). Isso permitia que o PAT noturno publicasse versões de produção.
Da mesma forma, o modelo de tokens do npm vinculava o NPM_RELEASE_TOKEN ao próprio pacote cline, compartilhado entre os lançamentos de produção e noturnos.
Da divulgação à exploração: o que aconteceu
Em resumo: uma única issue do GitHub, aberta por qualquer usuário, podia acionar a seguinte cadeia:
A injeção de prompt no título da issue induz o Claude a executar
npm installa partir de um commit controlado pelo invasorO script
preinstallmalicioso instala o Cacheract no executor do ActionsO Cacheract enche o cache com \>10 GB de dados inúteis, acionando a remoção LRU
O Cacheract define entradas de cache envenenadas que correspondem às chaves do fluxo noturno
O fluxo noturno de publicação restaura o cache envenenado por volta das \~2h UTC
O invasor exfiltra
VSCE_PAT,OVSX_PATeNPM_RELEASE_TOKENO invasor publica uma atualização maliciosa para milhões de desenvolvedores
Data | Evento |
|---|---|
21 de dezembro de 2025 | Cline adiciona ao repositório um fluxo de triagem de issues com IA |
1º de janeiro de 2026 | Adnan Khan envia um GHSA e escreve para security@cline.bot |
31 de janeiro a 3 de fevereiro de 2026 | Falhas suspeitas de cache são observadas nos fluxos noturnos do Cline |
9 de fevereiro de 2026 | Khan divulga as descobertas; Cline corrige a falha em 30 minutos |
10 de fevereiro de 2026 | Cline confirma o recebimento e informa que as credenciais foram rotacionadas |
11 de fevereiro de 2026 | Cline rotaciona as credenciais novamente após receber um relato de que os tokens talvez ainda estivessem válidos |
17 de fevereiro de 2026 | A versão não autorizada |
17 de fevereiro de 2026 | Cline publica a versão 2.4.0, descontinua a 2.3.0 e revoga o token correto |
17 de fevereiro de 2026 | GHSA-9ppg-jx86-fqw7 é publicado |
Após o incidente | Cline migra as publicações no npm para a procedência OIDC via GitHub Actions |
Khan descobriu a vulnerabilidade no fim de dezembro de 2025 e enviou um GitHub Security Advisory (GHSA) em 1º de janeiro de 2026, junto com um e-mail para o contato de segurança do Cline.
Em 9 de fevereiro, depois que Khan publicou suas descobertas, o Cline corrigiu a vulnerabilidade em 30 minutos, removendo os fluxos de triagem com IA e eliminando o consumo de cache dos fluxos de publicação. A equipe também rotacionou as credenciais e confirmou o recebimento do relato.
No entanto, a rotação de credenciais foi incompleta. Em 17 de fevereiro, um agente desconhecido usou um token do npm ainda ativo (o token errado havia sido revogado em 9 de fevereiro) para publicar cline@2.3.0 com uma única modificação:
A versão não autorizada ficou disponível por aproximadamente oito horas, até que o Cline publicou a versão 2.4.0 e descontinuou a 2.3.0. O binário da CLI era idêntico, byte por byte, ao da versão legítima 2.2.3. Depois desse incidente, o Cline migrou as publicações no npm para a procedência OIDC via GitHub Actions, eliminando tokens estáticos de longa duração como superfície de ataque.
Khan também apontou evidências de atividades suspeitas anteriores no cache dos fluxos noturnos do Cline, entre 31 de janeiro e 3 de fevereiro, incluindo um indicador de comprometimento característico do Cacheract: falhas nas etapas posteriores de actions/checkout sem nenhuma saída. Ainda não está claro se era outro pesquisador ou um agente de ameaça.
O payload do OpenClaw: uma escolha curiosa
A versão não autorizada cline@2.3.0 instalava o OpenClaw globalmente. O OpenClaw é um agente de IA de código aberto com recursos de execução de comandos, acesso ao sistema de arquivos e navegação na web. Ele não é malicioso por natureza.
Mas vale a pena considerar essa escolha. Como o pesquisador de segurança Yuval Zacharia observou: “Se o invasor pode enviar prompts remotamente, isso não é apenas malware: é a próxima evolução do C2. Não é preciso criar um implante personalizado. O agente é o implante, e o protocolo é texto simples.”
Um agente de IA que interpreta linguagem natural, tem ferramentas integradas para executar código e acessar arquivos e parece um software legítimo para desenvolvedores aos olhos das ferramentas de detecção de endpoints é um recurso poderoso após uma exploração, mesmo que o próprio OpenClaw não tenha sido armado nesse caso.
A Snyk já pesquisou anteriormente como a arquitetura do OpenClaw (acesso ao shell e permissões amplas para ferramentas) cria riscos de segurança. Em nosso estudo ToxicSkills, descobrimos que 36% das habilidades de agentes de IA em plataformas como o ClawHub têm falhas de segurança, incluindo payloads maliciosos ativos criados para roubar credenciais e instalar backdoors.
Agentes de IA são a nova superfície de ataque em CI/CD
Essa cadeia de ataque revela um padrão que a Snyk vem documentando em vários incidentes de 2025 e 2026. Agentes de IA com amplo acesso a ferramentas criam pontos de entrada de baixa fricção em sistemas que antes eram difíceis de alcançar.
Em dezembro de 2024, analisamos o ataque à cadeia de suprimentos do Ultralytics com solicitação de exploração de IA, em que invasores exploraram uma configuração incorreta de pull_request_target no GitHub Actions para injetar código no pipeline de build e publicar pacotes maliciosos no PyPI. O incidente do Cline segue o mesmo padrão estrutural (abuso de um gatilho de CI/CD que leva ao roubo de credenciais e à publicação maliciosa), mas com uma nova reviravolta: o ponto de entrada é a linguagem natural, não o código.
Em agosto de 2025, mostramos como invasores usaram agentes de programação com IA como arma durante o incidente dos pacotes maliciosos do Nx. Nesse ataque, scripts maliciosos de ciclo de vida do npm acionaram o Claude Code, o Gemini CLI e o Amazon Q com sinalizadores inseguros (--dangerously-skip-permissions, --yolo, --trust-all-tools), transformando assistentes de IA para desenvolvedores em ferramentas de reconhecimento e exfiltração.

Malware no npm do Nx explicado: sequestro de agentes de IA — Brian Clark, da Snyk, explica como invasores usaram pacotes maliciosos do npm para transformar agentes de programação com IA em ferramentas de roubo de credenciais e exfiltração de dados.
O incidente do Cline vai além: o agente de IA não estava em execução na máquina de um desenvolvedor, mas dentro de um pipeline de CI/CD, com acesso ao cache compartilhado do Actions e, indiretamente, às credenciais de publicação de produção.
Como observamos em nossa pesquisa sobre o novo cenário de ameaças para aplicações nativas de IA, a convergência entre vulnerabilidades de IA e fragilidades de segurança tradicionais cria cadeias de ataque que nenhuma das categorias de defesa consegue combater bem quando atua isoladamente. Um scanner de injeção de prompt não detecta o envenenamento de cache. Um guia de reforço de CI/CD não prevê a linguagem natural como vetor de ataque.
Baixa gravidade — alto potencial de impacto
É importante distinguir o que aconteceu do que poderia ter acontecido:
O que realmente aconteceu:
Uma versão não autorizada do
cline@2.3.0foi publicada no npm em 17 de fevereiro de 2026Ela ficou disponível por cerca de 8 horas e instalava o OpenClaw globalmente por meio de um script postinstall
O binário da CLI em si não foi modificado
A auditoria da Cline não encontrou publicações não autorizadas no VS Code Marketplace nem no OpenVSX
O aviso do GitHub classifica o incidente como de baixa gravidade
O que poderia ter acontecido:
Um invasor sofisticado poderia ter publicado uma versão comprometida da extensão Cline para VS Code no Marketplace e no OpenVSX
Com mais de 5 milhões de instalações e atualizações automáticas ativadas, o código malicioso seria executado no ambiente de desenvolvimento integrado de cada desenvolvedor, com acesso a credenciais, chaves SSH e código-fonte
O ataque exigia apenas uma conta do GitHub e conhecimento de técnicas documentadas publicamente
Como proteger agentes de IA em pipelines de CI/CD
Se você instalou cline@2.3.0 via npm:
Desinstale:
npm uninstall -g clineDesinstale o OpenClaw, se tiver sido instalado:
npm uninstall -g openclawReinstale a versão 2.4.0 ou posterior:
npm install -g cline@latestVerifique se há pacotes npm globais inesperados no sistema:
npm list -g --depth=0Altere todas as credenciais que estavam acessíveis na máquina afetada
Se você usa a extensão Cline para VS Code:
A auditoria da Cline confirmou que nenhuma versão não autorizada da extensão foi publicada
A extensão do VS Code não foi afetada por este incidente específico
Considere desativar as atualizações automáticas das extensões do ambiente de desenvolvimento integrado e revisar as atualizações antes de instalá-las
Proteja seus pipelines de CI/CD contra ataques nativos de IA
O incidente da Cline mostra por que as organizações precisam de defesas em camadas, que combinem segurança de IA com o fortalecimento tradicional de CI/CD.
Para equipes que executam agentes de IA em CI/CD:
Limite o acesso às ferramentas. Agentes de IA usados para triagem de issues não precisam de permissões de
Bash,WriteouEdit. Defina o--allowedToolscom o mínimo necessário para a tarefa.Não use o cache do Actions em workflows de release. Em builds que lidam com segredos de publicação, a integridade é mais importante do que a velocidade. O envenenamento de cache é um vetor de ataque amplamente documentado no GitHub Actions.
Separe as credenciais de publicação. Use namespaces separados e tokens dedicados para releases noturnas e de produção. Se o PAT usado nas releases noturnas puder publicar releases de produção, seu pipeline noturno será uma superfície de ataque à produção.
Higienize as entradas não confiáveis. Nunca insira diretamente nos prompts de agentes de IA dados controlados por usuários, como títulos de issues, descrições de PRs ou corpos de comentários. Isso equivale à injeção indireta de prompt, semelhante à injeção de SQL por concatenação de strings.
Verifique cuidadosamente a rotação de credenciais. O incidente da Cline mostra como uma rotação incompleta de credenciais pode deixar uma brecha aberta. Ao trocar segredos após uma violação, confirme que todos os tokens foram revogados e considere adotar credenciais de curta duração, como a procedência OIDC para npm, para reduzir a exposição.
Como a Snyk ajuda a proteger a cadeia de suprimentos de agentes de IA
A Snyk oferece várias ferramentas para se defender dos tipos de vulnerabilidade explorados neste ataque. agent-scan (mcp-scan) é um scanner de segurança de código aberto para agentes de IA, servidores MCP e habilidades de agentes. Ele detecta automaticamente configurações de MCP e habilidades instaladas e, em seguida, verifica se há injeções de prompt, envenenamento de ferramentas, código malicioso e fluxos tóxicos. Execute com uvx mcp-scan@latest --skills.
O Snyk AI-BOM gera uma lista de materiais de IA para seus projetos, identificando modelos de IA, agentes, ferramentas, servidores MCP e conjuntos de dados. Ele ajuda a revelar o inventário completo de componentes de IA na sua base de código, para você saber a que está exposto. Execute com snyk aibom.
Por fim, Snyk Open Source: monitora suas dependências de código aberto em busca de vulnerabilidades conhecidas e pacotes maliciosos. O banco de dados de vulnerabilidades da Snyk sinalizaria versões de pacotes comprometidas, como cline@2.3.0. Para entender melhor como a Snyk está enfrentando as ameaças à segurança nativas de IA, confira nossas pesquisas sobre análise de fluxos tóxicos, injeção de prompt em MCP e sequestro de agentes.
Com a velocidade de desenvolvimento disparando, você sabe mesmo a que seu ambiente de IA pode acessar? Baixe “A crise de segurança de IA no seu ambiente Python” para saber mais.
WHITE PAPER
A crise de segurança da IA no seu ambiente Python
Com o ritmo de desenvolvimento acelerando cada vez mais, você sabe o que o seu ambiente de IA pode acessar?
