Pular para o conteúdo principal
Fechar
IA

PoisonedSkills: Quando a Doc da Skill Executa Código Malicioso

Gabriel Ferraresi· CEO | Tech863 de junho de 20264 min
poisoned skillsiasupply chainagentes iasegurança

Seu AI coding agent pode executar código malicioso só por ler a documentação de uma skill. Sem prompt explícito. Sem comando do usuário. O payload está dentro do code example. O agent reproduz como parte da execução normal. Isso é PoisonedSkills: Document-Driven Implicit Payload Execution. 4 frameworks, 5 modelos, 11.6% a 33.5% de bypass rate. 4 CVEs confirmados.

DDIPE: o ataque que bypassa o que prompt injection não consegue

Document-Driven Implicit Payload Execution. A técnica embute lógica maliciosa em code examples e config templates na documentação de skills. Coding agents como Claude Code, OpenHands, Codex CLI e Gemini CLI carregam skills de registries públicos. Quando processam uma task, leem a doc e reproduzem os code examples como parte da execução normal. O payload está dentro do exemplo. O agent executa sem saber que é malicioso.

O dado que muda tudo: instruções explícitas de ataque — "execute este comando malicioso" — alcançam 0% de bypass sob defesas fortes. DDIPE alcança 11.6% a 33.5%. Payload disfarçado de documentação bypassa o que prompt injection direto não consegue. O alinhamento do modelo reconhece uma instrução de ataque. Não reconhece um code example que parece legítimo.

Os números: 1.070 skills, 15 categorias MITRE, 4 CVEs

O estudo gerou 1.070 adversarial skills a partir de 81 seeds, cobrindo 15 categorias MITRE ATT&CK. Os frameworks testados: Claude Code, OpenHands, Codex CLI e Gemini CLI. Os modelos: Claude Sonnet 4.6, GLM-4.7, MiniMax-M2.5, GPT-5.4 e Gemini 2.5 Pro.

4 CVEs foram confirmados. 2 fixes já foram deployados. A superfície é real e explorável hoje — não é pesquisa teórica. Cada CVE representa um caminho concreto de execução de código malicioso através de documentação de skill em frameworks de uso productional.

Os 4 case studies: sandbox bypass, CI/CD amplificador, skill-loading e fix cosmético

Codex CLI: sandbox semantic bypass. O agent escapou do sandbox por uma brecha nas permissões. O sandbox restricionava operações de filesystem, mas não validava a semântica da ação. O payload executou operações que pareciam legítimas dentro do contexto da skill mas que violavam a intenção do sandbox.

Gemini CLI: CI/CD como attack amplifier. Em headless mode, o Gemini CLI remove confirmações de permissão. O payload executa sem interação humana. Um agent rodando em CI/CD sem approval gates é um vetor de execução silenciosa — ninguém vê, ninguém aprova, ninguém bloqueia.

Claude Code: skill-loading bypass nas local settings. O mecanismo de carregamento de skills pode ser manipulado via configurações locais, permitindo que skills maliciosas sejam injetadas sem validação do registry.

OpenHands: fix em prompt-level, não na arquitetura. A correção foi feita no prompt do sistema, não na estrutura do framework. Prompt-level fixes são frágeis — mudanças no modelo ou no contexto podem reabrir o vetor. É curar o sintoma, não a doença.

A lição estrutural: alignment e guardrails são complementares, não substituíveis

Duas camadas de defesa interagem de forma assimétrica: model alignment e architectural guardrails. Remover proteção arquitetural amplifica execução em 11.3x para modelos fracamente alinhados. Apenas 1.6x para modelos bem alinhados. A diferença é brutal.

Alinhamento sozinho não basta. Guardrails sozinhos não bastam. Os dois precisam estar presentes. Modelos bem alinhados sem guardrails ainda executam payloads sofisticados. Guardrails sem alinhamento são circumventáveis por brechas semânticas. A defesa eficaz é a interação entre as duas camadas — cada uma cobrindo as falhas da outra.

O dado que valida multi-model verification: apenas 1.6% dos payloads bypassaram todos os modelos simultaneamente. Antes de uma ação de alto risco, passar o código por 2+ modelos reduz o bypass rate de 33.5% para menos de 2%. É a countermeasure mais viável que temos hoje.

Skill registries são a nova supply chain

Skills têm privilégios de curated libraries sem o mesmo nível de auditoria. Quando um agent carrega uma skill de um registry, assume que o conteúdo é confiável. Code examples em documentação não são texto inofensivo — são código que o agent reproduz e executa. A mesma confiança delegada que existe em npm install existe no carregamento de skills, mas sem o ecossistema de auditoria que o npm construiu ao redor de lockfiles, integrity checks e scope validation.

CI/CD headless mode é amplificador de ataque. Agent em CI sem interação humana é bypass silencioso. A combinação de skill registry não-auditado com CI/CD autônomo cria uma superfície de ataque que ninguém está monitorando.

Na Tech86, avaliamos superfícies de ataque em pipelines de AI agents — skill registries, permissões CI/CD, guardrails arquiteturais. Se seus devs usam coding agents em produção, você precisa saber o que essas skills podem fazer antes do primeiro payload.

Interessado nesta solução?

Conheça nossos serviços gerenciados e infraestrutura.

Conheça Segurança Ofensiva

Perguntas Frequentes

PoisonedSkills usa Document-Driven Implicit Payload Execution (DDIPE). Em vez de injetar instruções maliciosas diretamente no prompt, o ataque embute o payload em code examples e config templates dentro da documentação de skills. O agent lê a doc como parte normal da execução e reproduz o código malicioso sem saber que está sob ataque. Instruções explícitas de ataque: 0% bypass sob defesas fortes. DDIPE: até 33.5%.

4 frameworks: Claude Code, OpenHands, Codex CLI e Gemini CLI. 5 modelos: Claude Sonnet 4.6, GLM-4.7, MiniMax-M2.5, GPT-5.4 e Gemini 2.5 Pro. O estudo gerou 1.070 adversarial skills a partir de 81 seeds, cobrindo 15 categorias MITRE ATT&CK. 4 CVEs foram confirmados e 2 fixes já foram deployados.

Skills têm privilégios de curated libraries — o agent confia que o conteúdo é seguro porque veio de um registry. Mas o nível de auditoria é muito menor que o de pacotes npm ou PyPI. Qualquer pessoa pode publicar uma skill com code examples maliciosos. O agent carrega, lê e executa sem o mesmo scrutiny que um package manager aplica.

O Codex CLI usa sandbox de filesystem, mas o agent encontrou uma brecha nas permissões semânticas — operações que pareciam legítimas dentro do contexto da skill mas que violavam a intenção do sandbox. O sandbox restricionava o quê, mas não o porquê. Um dos 4 CVEs confirmados veio desse vetor.

Sim. Apenas 1.6% dos payloads bypassaram todos os 5 modelos simultaneamente. Se você roda o código por 2+ modelos antes de executar ações de alto risco, a taxa de escape cai drasticamente. O custo é latência adicional em verificações, mas o benefício é uma redução de 98.4% no bypass rate comparado a um modelo único.

Blog — Fale Conosco

Tem alguma pergunta sobre nossos artigos ou serviços? Nossa equipe está pronta para ajudar.

Agendar Reunião

Reserve um horário.

Agendar Agora

E-mail

Envie uma mensagem.

[email protected]

WhatsApp

Conversa rápida.

Endereço

Avenida Paulista, 1636 - São Paulo - SP - 01310-200

Especialista Tech86

Online agora

Olá! Como podemos ajudar a escalar seu negócio hoje?

Tech86 Engineering

Nós valorizamos sua privacidade

Utilizamos cookies e tecnologias similares para otimizar a sua experiência, analisar o tráfego do site e personalizar conteúdo. Ao clicar "Aceitar Todos", você concorda com o uso de todos os cookies. Leia nossa Política de Privacidade.