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.pthdo 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
sitedo Python executa automaticamente arquivos.pthna 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.