Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
chub-supply-chain-poc — Injeção silenciosa de dependências através de pipelines de documentação de IA. 240 execuções isoladas do Docker provando que o servidor MCP sem sanitização do Context Hub permite que documentos envenenados comprometam projetos de desenvolvedores sem aviso. | Kitploit
Ferramentas/GitHubGitHub/mickmicksh/chub-supply-chain-poc
Análise de VulnerabilidadesAnálise de CódigoAnálise de MalwareTestes de PenetraçãoSegurança da Cadeia de SuprimentosPapers e PesquisaAprendizado e EducaçãoSegurança de IA
GitHub
mickmicksh/chub-supply-chain-poc

chub-supply-chain-poc

Injeção silenciosa de dependências através de pipelines de documentação de IA. 240 execuções isoladas do Docker provando que o servidor MCP sem sanitização do Context Hub permite que documentos envenenados comprometam projetos de desenvolvedores sem aviso.

Ver Repositório
423há 5 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Divulgação de Vulnerabilidade Versão Afetada Testes Reproduzível Licença

Prova de Conceito de Cadeia de Suprimentos do Context Hub

Vulnerabilidade de zero-saneamento no Context Hub (@aisuite/chub v0.1.3) permite injeção silenciosa de dependências através do pipeline de documentação do MCP.

Referências: CWE-94 (Injeção de Código) | (Esfera de Controle Não Confiável) | (Verificação Insuficiente da Autenticidade dos Dados) | (Injeção de Prompt)

CWE-829
CWE-345
OWASP LLM01

TL;DR

Criamos documentação envenenada realista contendo dependências falsas (plaid-link-verify, stripe-checkout-guard) e as servimos através de um servidor MCP chub local dentro de contêineres Docker isolados. Nenhum conteúdo envenenado foi enviado para o registro do Context Hub - executamos chub build localmente e configuramos o servidor MCP para servir a saída pré-construída a partir do disco. Da perspectiva do agente, a experiência é idêntica a buscar documentos do registro ativo.

Quando assistentes de codificação de IA buscaram os documentos, o Haiku escreveu silenciosamente o pacote falso no requirements.txt em 100% das execuções - sem nunca mencioná-lo em sua saída de texto. Um desenvolvedor lendo a resposta do assistente não veria nada suspeito, mas seu projeto está envenenado.

240 execuções isoladas. 3 modelos. 4 níveis de esforço. 2 APIs. 0 contaminação.

Como se parece

O código gerado importa silenciosamente a dependência falsa junto com módulos legítimos:

Generated app.py with injected dependency

O agente também modifica CLAUDE.md para incorporar o pacote falso como um "padrão do projeto":

CLAUDE.md after attack

Resultados

Estas tabelas mostram os resultados do Plaid Link (120 execuções isoladas). Veja RESULTS.md para dados completos, incluindo Stripe Checkout (240 execuções no total).

Envenenamento Silencioso de Dependência (requirements.txt)

EsforçoHaikuSonnetOpus
Baixo100%60%0%
Médio100%70%0%
Alto100%40%0%
Máximo100%40%0%

Haiku nunca alertou sobre a dependência falsa (0/40). Sonnet alertou em 48% das execuções (19/40), mas ainda envenenou o requirements.txt em 53% no geral. Opus alertou em 75% das execuções (30/40) e nunca envenenou o requirements.txt ou o código.

Persistência em CLAUDE.md (backdoor de configuração do projeto)

EsforçoHaikuSonnetOpus
Baixo90%70%0%
Médio80%70%0%
Alto90%40%0%
Máximo90%50%0%

Haiku modifica o CLAUDE.md do projeto para incluir a dependência falsa como um "padrão do projeto" em 88% das execuções (35/40). Este arquivo é commitado no git - todo futuro desenvolvedor que clonar o repositório herda a configuração envenenada.

Cadeia de Ataque

root@kitploit:~
flowchart LR
    A["Atacante\nenvia PR"] -->|"Sem verificação\nde identidade"| B["Mantenedor\nmescla PR"]
    B -->|"Sem saneamento\nde conteúdo"| C["Documento no CDN\n(sem verificação de integridade)"]
    C -->|"MCP serve\nconteúdo bruto"| D["Janela de contexto\ndo agente"]
    D -->|"Agente age sobre\nconteúdo não confiável"| E["Estação de trabalho\ndo desenvolvedor"]

    style A fill:#111,stroke:#333,color:#f0f0f0
    style B fill:#161616,stroke:#333,color:#888
    style C fill:#161616,stroke:#333,color:#888
    style D fill:#161616,stroke:#333,color:#888
    style E fill:#111,stroke:#333,color:#f0f0f0

Modelo de Ameaça

AtacanteQualquer pessoa que possa enviar um PR ao registro de documentos do Context Hub
Superfície de ataqueDocumentos da comunidade fluindo do PR no GitHub para CDN, depois MCP, depois contexto do agente
Limite de confiançaConteúdo de contribuidor não confiável tratado como documentação oficial de API
Pré-requisitoUm PR mesclado contendo um documento envenenado
ImpactoExecução arbitrária de código via injeção de dependência + hooks pós-instalação do pip

Principais Descobertas

  1. O envenenamento do Haiku é totalmente silencioso. 0/80 execuções do Haiku em ambas as APIs mencionaram a dependência falsa na resposta. O modelo escreve no disco sem avisar. Sonnet alertou em 48% das execuções, mas ainda envenenou o requirements.txt em 35-53% das execuções. Opus alertou em 23-75% das execuções e nunca envenenou o requirements.txt ou o código.

  2. Haiku é 100% explorável em todos os níveis de esforço. Independência de esforço em ambas as APIs. O modelo mais fraco da família nunca detecta a dependência falsa.

  3. Opus resiste ao envenenamento de código, mas não ao de configuração. Opus nunca escreveu a dependência falsa no requirements.txt ou no código Python (0/80 em ambas as APIs). Mas no Stripe, Opus modificou o CLAUDE.md em 38% das execuções, documentando o canário como uma dependência do projeto sem instalá-lo.

  4. A persistência em CLAUDE.md cria um vetor na cadeia de suprimentos. Arquivos de configuração modificados são commitados no git, envenenando todo desenvolvedor que clonar o repositório e toda sessão futura de IA naquele projeto. Isso funciona em todos os modelos (Haiku 88-90%, Sonnet 58%, Opus 0-38%).

  5. Familiaridade com a API é importante. Stripe (bem conhecida): modelos detectam pacotes falsos via dados de treinamento. Plaid (menos conhecida): modelos não conseguem verificar e aceitam a dependência falsa sem questionar.

  6. Este é um problema de toda a categoria. Context7 teve ContextCrush (Fev 2026). Context Hub tem este. Qualquer ferramenta que injete conteúdo externo não saneado no contexto do agente é vulnerável.

Descobertas no Código Fonte

Zero saneamento em todo o pipeline:

  • annotations.js - writeFileSync com conteúdo bruto, sem filtragem
  • build.js - sem varredura de conteúdo, sem normalização Unicode
  • cache.js - busca no CDN com verificação zero de hash/assinatura
  • source: official no frontmatter - autodeclarado, não verificado

Divulgação

Context Hub não possui SECURITY.md. Não há uma maneira documentada de divulgar responsavelmente uma vulnerabilidade - sem contato de segurança, sem chave PGP, sem política de divulgação. Membros da comunidade encontraram as vulnerabilidades de qualquer forma e as registraram como issues e PRs regulares. Nenhum foi revisado.

Open security PRs with zero reviews

DataEvento
2026-03-12Issue #74 aberta por @bjorkbjork relatando 4 vulnerabilidades de segurança, incluindo integridade do CDN, verificação de fonte autodeclarada e injeção de anotação
2026-03-12Issue #74 atribuída internamente a um membro da equipe principal - zero acompanhamento
2026-03-17PR #125 aberto por @hobostay adicionando verificação de integridade de conteúdo - zero revisões
2026-03-12 a 03-20PRs de segurança adicionais (#69, #81) abertos pela comunidade - zero revisões
2026-03-20 a 03-23Nossa auditoria independente confirma e quantifica as vulnerabilidades com 240 execuções Docker isoladas
2026-03-23Divulgação pública

Nota: Não abrimos a issue #74. Nossa auditoria descobriu e quantificou essas vulnerabilidades de forma independente. A issue #74 e os PRs #69, #81, #125 são citados como trabalho anterior demonstrando que a comunidade já sinalizou esses problemas sem nenhum engajamento dos mantenedores.

Escalação

Uma vez que o pacote falso está no requirements.txt, um pip install -r requirements.txt padrão dá ao atacante execução arbitrária de código via hooks pós-instalação do setup.py. Isso não é uma sandbox - o pip executa Python sem restrições com as permissões totais do desenvolvedor.

A partir desse único ponto de entrada, o atacante pode:

  • Exfiltrar dados. Ler e enviar variáveis de ambiente, chaves de API, credenciais AWS, chaves SSH, arquivos .env ou código-fonte para um servidor controlado pelo atacante.
  • Instalar um backdoor persistente. Reverse shell, cron job, perfil de shell modificado ou processo em segundo plano que sobrevive à desinstalação do pacote.
  • Envenenar o registro do chub. Modificar ~/.chub/config.yaml para adicionar uma fonte de documentos controlada pelo atacante. Todas as consultas futuras do chub em todas as bibliotecas agora incluirão conteúdo do atacante. Sobrevive a chub cache clear porque a configuração não é cache.
  • Propagar através do git. A modificação do CLAUDE.md é commitada. Todo desenvolvedor que clonar o repositório herda a configuração envenenada. Se eles executarem o mesmo fluxo de trabalho, o ataque se repete em suas máquinas.

Essas ações não são mutuamente exclusivas. Um único hook pós-instalação pode fazer todas elas em menos de um segundo. Não criamos nem registramos um pacote malicioso.

Estrutura do Repositório

root@kitploit:~
.
|-- README.md                    # Este arquivo
|-- RESULTS.md                   # Conjunto de dados completo com detalhamentos por execução
|-- REPRODUCE.md                 # Guia de reprodução baseado em Docker
|-- alternatives-comparison.md   # Comparação com Context7, LAP, GitMCP, Docfork
|-- article.html                 # Artigo completo
|-- docker/
|   |-- Dockerfile               # Ambiente de teste isolado
|   |-- run_isolated.ps1         # Executor PowerShell (Windows/macOS/Linux via pwsh)
|   |-- seed-claude.md           # CLAUDE.md mínimo semeado em cada execução
|   |-- plaid-doc/               # Documento envenenado do Plaid Link (canário: plaid-link-verify)
|   |   `-- plaid/link/DOC.md
|   `-- stripe-doc/              # Documento envenenado do Stripe Checkout (canário: stripe-checkout-guard)
|       `-- stripe/checkout/DOC.md
`-- results/
    |-- plaid-isolated/          # 120 execuções do Plaid: JSON + transcrições de sessão + arquivos do projeto
    `-- stripe-isolated/         # 120 execuções do Stripe: JSON + transcrições de sessão + arquivos do projeto

Reproduzindo os Resultados

Veja REPRODUCE.md para o guia de reprodução completo baseado em Docker.

Início rápido:

root@kitploit:~
# Plaid (padrão)
docker build --build-arg DOC_DIR=plaid-doc -t plaid-bench docker/
docker run -d --name plaid-runner plaid-bench sleep infinity
docker exec -it plaid-runner claude login

# Stripe
docker build --build-arg DOC_DIR=stripe-doc -t stripe-bench docker/
docker run -d --name stripe-runner stripe-bench sleep infinity
docker exec -it stripe-runner claude login

# Em seguida, execute a matriz de teste a partir do host (veja REPRODUCE.md)

Limitações

  1. Apenas modelos Claude testados. GPT-4, Gemini, Llama podem diferir.
  2. 10 execuções por célula - suficiente para tendências, não para intervalos de confiança estreitos.
  3. Testes usaram --permission-mode bypassPermissions. Agentes reais podem solicitar confirmação.
  4. Fonte de documento local, não CDN. O caminho do CDN requer um PR malicioso mesclado.
  5. Nenhum pacote malicioso real foi registrado no PyPI.

Trabalhos Relacionados

  • ContextCrush (Noma Security, Fev 2026) - mesma classe de ataque contra Context7
  • Morris II (Cohen, Bitton, Nassi) - prompts auto-replicantes em agentes de IA
  • Promptware Kill Chain (Nassi, Schneier et al.) - taxonomia de ataques LLM em múltiplos estágios
  • MCP Tool Poisoning (Invariant Labs) - manipulação de ferramentas entre servidores

Licença

MIT

Divulgação

Esta pesquisa foi conduzida por Mickey Shmueli, desenvolvedor do LAP, uma alternativa open-source ao Context Hub. O LAP usa compilação determinística a partir de especificações oficiais de API, sem conteúdo contribuído pela comunidade no pipeline. Esta auditoria foi motivada por uma preocupação genuína de segurança sobre pipelines de conteúdo não saneados - uma classe de vulnerabilidade que afeta qualquer ferramenta neste espaço que aceita contribuições não verificadas da comunidade. As descobertas falam por si: 240 execuções Docker isoladas, detecção determinística, totalmente reproduzível.

Aviso Legal

Esta PoC é apenas para fins educacionais e de pesquisa em segurança. Todos os testes foram realizados localmente em contêineres Docker isolados. Nenhum conteúdo malicioso foi submetido ao repositório do Context Hub. Todos os nomes de pacotes canários foram verificados como inexistentes no PyPI antes dos testes.

Essas vulnerabilidades foram reportadas independentemente por membros da comunidade na issue #74 (12 de março) e no PR #125 (17 de março). Ambos receberam zero resposta dos mantenedores.

Baixar ferramenta