Back to Blog
BlogMarch 25, 20262

Ataque à Cadeia de Suprimentos LiteLLM: Análise Completa da Injeção de Código Malicioso de 2026 e Guia de Resposta de Emergência

Ataque à Cadeia de Suprimentos LiteLLM: Análise Completa da Injeção de Código Malicioso de 2026 e Guia de Resposta de Emergência

Principais Pontos

  • Versões Afetadas: A LiteLLM 1.82.7 e 1.82.8 no PyPI foram injetadas com código malicioso e foram removidas. A última versão segura é a 1.82.6.
  • Mecanismo de Ataque: A versão 1.82.7 escondeu a carga maliciosa em proxy_server.py; a versão 1.82.8 também usou um arquivo .pth do Python (litellm_init.pth) que executa automaticamente na inicialização de qualquer processo Python sem precisar importar o LiteLLM.
  • Dados Roubados: Chaves privadas SSH, credenciais da AWS/GCP/Azure, configurações e Secrets do Kubernetes, arquivos .env, carteiras de criptomoedas, senhas de bancos de dados, credenciais do Git, histórico do shell, e mais.
  • Ataque de Três Estágios: Coleta de credenciais → Movimentação lateral no Kubernetes (criando Pods privilegiados) → Persistência via serviço systemd disfarçado (sysmon.service).
  • Causa Raiz: Os atacantes comprometeram o scanner de segurança Trivy anteriormente, obtiveram direitos de publicação no PyPI do mantenedor do LiteLLM e contornaram o CI/CD normal para fazer upload de pacotes maliciosos diretamente.
  • Janela de Exposição: As versões maliciosas ficaram disponíveis apenas por 1 a 2 horas antes que uma falha de fork bomb causou a queda das máquinas dos desenvolvedores, levando à descoberta.
  • Escopo do Impacto: O LiteLLM tem mais de 95 milhões de downloads mensais e é usado indiretamente por muitos sistemas de agentes de IA, servidores MCP e projetos de orquestração de LLM.

Cronologia e Detalhes do Ataque

Em 24 de março de 2026, a popular biblioteca LiteLLM — um wrapper unificado de API para mais de 100 provedores de LLM — repentinamente teve versões anômalas aparecendo no PyPI. O ator de ameaça TeamPCP (responsável anteriormente por ataques ao Trivy e KICS) usou credenciais comprometidas do mantenedor ou tokens do PyPI para lançar duas versões maliciosas.

Versão 1.82.7:

  • Carga maliciosa escondida dentro de litellm/proxy/proxy_server.py.
  • Acionada apenas ao importar o módulo ou executar litellm --proxy.
  • A carga útil era um script Python com codificação dupla em base64.

Versão 1.82.8 (mais destrutiva):

  • Também incluiu o arquivo litellm_init.pth.
  • O módulo site do Python executa automaticamente arquivos .pth na inicialização do interpretador, permitindo acionamento sem interação.
  • Isso significa que mesmo projetos que nunca usaram explicitamente o LiteLLM poderiam ser infectados se o pacote estivesse presente em seu ambiente.

O malware usou criptografia híbrida (AES-256-CBC + RSA-4096) para exfiltrar dados para o domínio falso models.litellm.cloud.

Mitigações Avançadas e Melhores Práticas

  • Fixar Versões: Bloqueie sempre a versão do LiteLLM para ==1.82.6 (ou uma versão segura mais recente) em produção usando Poetry, Pipenv ou ferramentas similares.
  • Escaneamento da Cadeia de Suprimentos: Integre Dependabot, Snyk, JFrog Xray ou Endor Labs para monitorar alterações nos pacotes PyPI.
  • Privilégio Mínimo: Evite misturar credenciais de desenvolvimento e produção; use Gerenciadores de Segredos dedicados (AWS Secrets Manager, HashiCorp Vault).
  • Instalação Isolada (Air-gapped): Para ambientes de alta segurança, compile a partir do código-fonte verificado do GitHub e verifique os hashes.
  • Monitoramento: Implante soluções EDR para observar a criação de arquivos .pth, comportamentos anormais de bifurcação (fork) e conexões de saída para domínios suspeitos.

Casos Específicos (Edge Cases):

  • A instalação indireta via scripts de CLI (install.sh) também expõe os sistemas.
  • Imagens Docker baseadas em imagens base comprometidas devem ser reconstruídas.
  • Ambientes virtuais (venv) são isolados, mas instalações globais do Python ainda afetam processos do sistema.

Conclusão

O ataque à cadeia de suprimentos do LiteLLM serve como um lembrete severo de que a conveniência dos ecossistemas de código aberto vem com sérios riscos de segurança. Ao comprometer primeiro um scanner de segurança, os atacantes alcançaram um impacto preciso a jusante.

Aja Agora: Verifique todos os ambientes Python em busca de versões do LiteLLM, faça o downgrade para a versão 1.82.6 e altere imediatamente todas as credenciais potencialmente expostas. Estabeleça processos rigorosos de revisão de dependências para evitar incidentes futuros.

Mantenha-se atualizado por meio dos comunicados oficiais do LiteLLM no GitHub e no PyPI. Em 2026 e além, a auditoria regular de dependências é uma habilidade essencial para todo desenvolvedor de IA.

Mantenha-se vigilante e proteja a cadeia de suprimentos — começando com a fixação de versões hoje.

Share this article