Você roda pip install litellm, vai buscar um café, volta pro terminal. Tudo parece normal. Suas chaves SSH — as senhas-mestre digitais dos seus servidores — já estão a caminho da caixa de entrada de outra pessoa.
Em 24 de março de 2026, esse cenário exato aconteceu de verdade.
O que aconteceu
LiteLLM é o proxy open-source de LLM mais popular do mundo — um tradutor universal que permite ao seu código conversar com qualquer modelo de IA (Claude, GPT, Gemini) através de uma única interface. Cerca de 3,4 milhões de downloads por dia. Se você trabalha com IA em Python, provavelmente já usou.
Um grupo chamado TeamPCP subiu duas versões envenenadas — 1.82.7 e 1.82.8 — direto no PyPI (Python Package Index — a lojinha onde vivem as bibliotecas Python). O malware coletava chaves SSH, credenciais de nuvem, tokens de API e variáveis de ambiente. Depois tentava se espalhar por clusters Kubernetes — aquelas redes de containers que rodam a maior parte da infraestrutura em nuvem.
A parte nojenta: a versão 1.82.8 usava um arquivo .pth. Em Python, arquivos .pth executam automaticamente quando o interpretador inicia. Não quando você importa uma biblioteca. Quando qualquer processo Python roda. O autocomplete da sua IDE? Comprometido. Rodando pip install outra-coisa? Comprometido. O malware não precisava da sua permissão nem da sua atenção.
Como eles entraram
O TeamPCP não hackeou o LiteLLM diretamente. Eles jogaram um jogo mais longo.
Primeiro, colocaram um backdoor no Trivy da Aqua Security — um scanner de segurança open-source bastante popular — envenenando uma de suas GitHub Actions (scripts automatizados que rodam dentro de pipelines de CI/CD — as esteiras que compilam e entregam código). O Trivy comprometido rodava dentro do próprio pipeline de CI do LiteLLM, fazendo o que sempre fez: escaneando vulnerabilidades. Só que agora também roubava credenciais do PyPI de fininho.
Com essas credenciais roubadas, o TeamPCP subiu pacotes maliciosos direto no PyPI. Sem pull request. Sem code review. Sem bandeira vermelha. A ferramenta de segurança virou o vetor de ataque.
O Datadog Security Labs rastreou isso até uma campanha coordenada de várias semanas que também atingiu o scanner KICS da Checkmarx. O TeamPCP transformou em arma as ferramentas que as empresas usam para se proteger.
Três horas foram suficientes
As versões maliciosas ficaram no PyPI por cerca de três horas — entre 10:39 UTC e 16:00 UTC do dia 24 de março. A comunidade sinalizou, o PyPI colocou o pacote em quarentena. O comprometimento não afetou o LiteLLM Cloud nem as imagens Docker oficiais — eles usam versões fixadas.
Mas três horas com 3,4 milhões de downloads por dia significam milhares de instalações. Qualquer pessoa que rodou pip install --upgrade litellm naquela janela — ou tinha um pipeline automatizado que fez isso por ela — se ferrou.
O que fazer se você foi afetado
Se você instalou ou atualizou o LiteLLM em 24 de março entre 10:39–16:00 UTC, parabéns — seu fim de semana acabou de ser cancelado:
- Rotacione tudo. Chaves SSH, tokens de nuvem, chaves de API, senhas de banco de dados — qualquer coisa que vivia nas suas variáveis de ambiente
- Verifique movimentação lateral. Especialmente dentro de clusters Kubernetes. O malware tentava ativamente se espalhar
- Fixe na versão 1.82.6 ou anterior até a poeira baixar completamente
- Audite seu CI/CD. Se você usa Trivy ou Checkmarx KICS, verifique se suas GitHub Actions não foram adulteradas
O padrão que deveria te assustar
Esse ataque não é especial por causa do LiteLLM. É especial por causa do método. O TeamPCP não achou um zero-day. Não fez phishing num mantenedor. Eles comprometeram um scanner de segurança — uma ferramenta que existe especificamente para prevenir esse tipo de coisa — e usaram como chave-mestra para tudo que vem depois.
Ataques à cadeia de suprimentos — onde hackers miram nas ferramentas e bibliotecas das quais seu código depende em vez de atacar você diretamente — estão cada vez mais criativos. As cadeias de confiança no open source são longas e frágeis. Você confia no LiteLLM. O LiteLLM confia no Trivy. O Trivy confia numa GitHub Action. A GitHub Action confia... em quem, exatamente?
Fixe suas dependências. Verifique checksums. Não faça auto-upgrade em produção. E talvez trate seu scanner de segurança com a mesma desconfiança que você trata qualquer outra dependência — porque aparentemente, ele merece.
→ LiteLLM Security Update · Análise da Snyk · Datadog Security Labs · BleepingComputer





