26% das skills de IA contêm vulnerabilidades. 5% são provavelmente maliciosas. E a maioria dos desenvolvedores instala isso no Claude Code, Cursor e Codex sem auditoria. Segundo Liu et al. (arXiv:2601.10338, janeiro 2026), que analisaram 31.132 skills, 26,1% apresentam vulnerabilidades e 5,2% mostram intenção provavelmente maliciosa. A NVIDIA cita esse estudo no README do SkillSpector — o número é da pesquisa, não da NVIDIA. Nós acompanhamos esse ecossistema desde o início e o sinal é claro: o problema é estrutural, não de ferramenta.
O ecossistema de skills é o novo npm
Desenvolvedores instalam skills no Claude Code, Cursor e Codex da mesma forma que instalavam pacotes npm em 2015 — sem auditoria, sem verificação, sem modelo de ameaça. A diferença é de magnitude: um pacote npm rouba credenciais. Uma skill de IA rouba credenciais E instrui o agente a agir em seu nome. Um agente comprometido acessa seus dados, executa comandos no seu ambiente e pode escalar privilégios dentro do seu pipeline de CI/CD.
Segundo Liu et al. (arXiv:2601.10338), das 31.132 skills analisadas, 8.124 continham vulnerabilidades e 1.619 mostraram intenção provavelmente maliciosa. Esses números são da pesquisa acadêmica — a NVIDIA cita o estudo, não o produziu. O ecossistema está crescendo exponencialmente e a superfície de ataque cresce junto.
A Trail of Bits provou que scanners podem ser bypassados
A Trail of Bits demonstrou quatro técnicas que bypassam todos os scanners de skills existentes. Três foram construídas em menos de 1 hora:
- Whitespace inflation: 100 mil newlines escondem o payload abaixo do limite que o scanner lê. O scanner trunca a análise antes de chegar ao código malicioso.
- Bytecode .pyc: código compilado em bytecode é invisível para análise estática baseada em texto. O scanner vê um arquivo inofensivo; o runtime executa o payload.
- Indireção .docx: um script malicioso embutido no XML ZIP de um documento .docx. O scanner avalia o documento; o agente executa o script embutido.
- Prompt injection contra o scanner de LLM: engenharia social aplicada ao próprio verificador. O scanner semântico é um LLM — e LLMs são vulneráveis a prompt injection. O atacante convence o scanner de que o código é seguro.
Essas técnicas não são teóricas. São práticas, rápidas de implementar e eficazes contra a classe inteira de scanners estáticos.
O SkillSpector — o melhor scanner estático disponível
Segundo o repositório da NVIDIA no GitHub, o SkillSpector (10.7K estrelas, Apache 2.0, março de 2026) usa um pipeline de dois estágios: análise estática com regex, AST, YARA e OSV.dev, seguida de avaliação semântica opcional via LLM. Detecta 68 padrões em 17 categorias: prompt injection, anti-refusal, exfiltração, escalação de privilégio, cadeia de suprimentos, agência excessiva, vazamento de system prompt, memory poisoning, tool misuse, rogue agent, trigger abuse, behavioral AST, taint tracking, assinaturas YARA, MCP least privilege e MCP tool poisoning. Gera saída SARIF para integração com CI/CD.
É o scanner mais abrangente que existe para análise pré-instalação de skills. E não resolve o problema.
As limitações do SkillSpector
Segundo a NVIDIA, o SkillSpector não escaneia código binário ou criptografado. Segundo a Trail of Bits, .pyc bypassa essa classe de scanner. O passe semântico por LLM é vulnerável à mesma engenharia social que tenta detectar — um scanner baseado em LLM que avalia código via prompt injection é, por definição, suscetível a prompt injection.
O scanner mais rigoroso do mundo não protege contra o que muda depois da inspeção.
O experimento da AIR — a bomba-relógio de URL
Segundo o experimento da AIR, uma skill falsa chamada Stitch SDK passou por TODOS os scanners de skills existentes, incluindo o da NVIDIA. A técnica é simples: a skill aponta para uma URL legítima durante o scan. Após a distribuição, a URL é trocada para conteúdo malicioso. A AIR reporta que 26 mil agentes foram alcançados. Como a AIR tem interesse comercial nesse resultado, trate esse número com cautela.
O ataque de bomba-relógio (time-bomb URL) é a demonstração mais clara da falha estrutural: não importa quão bom é o scanner se o que ele verificou pode mudar depois da verificação. O npm nunca resolveu esse problema. O ecossistema de IA tem a mesma falha com consequências maiores.
A falha estrutural — verificar uma vez, confiar para sempre
O problema não é a qualidade dos scanners. É o modelo de confiança. Scanners verificam o pacote uma vez. Skills apontam para URLs externas que mudam depois da verificação. O modelo de confiança precisa mudar de verificar uma vez e confiar para sempre para verificar continuamente enquanto executa.
Isso significa monitoramento em runtime: interceptar chamadas de rede da skill, monitorar acessos a filesystem e APIs sensíveis, alertar sobre desvios de comportamento em relação ao baseline estabelecido no scan inicial. Significa re-verificação periódica: re-escanear skills em intervalos regulares, validar que URLs referenciadas apontam para o mesmo conteúdo do scan original, revogar automaticamente skills cujo conteúdo mudou desde a última verificação.
Na Tech86, nós implementamos segurança verificável para implantações de IA. Não acreditamos em scan único — acreditamos em verificação contínua. Se sua organização está adotando skills de IA sem monitoramento em runtime, você está repetindo os erros do npm em 2015 com consequências maiores. Nós podemos ajudar a mudar isso.
