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.
