Uma das bibliotecas mais populares para conectar aplicações a modelos de IA, a LiteLLM, teve uma versão maliciosa publicada no PyPI — o repositório oficial de pacotes Python. A versão 1.107.0 trazia um ladrão de credenciais e um backdoor de execução remota, que rodavam toda vez que qualquer processo Python iniciava na máquina.
O caso foi detalhado pela SafeDep – Real-time Open Source Software Supply Chain Security, e confirmado pela própria LiteLLM em um relatório de incidente. É mais um exemplo preocupante de ataque à cadeia de suprimentos de software.
O que aconteceu
Para quem não conhece, a LiteLLM é uma ferramenta que padroniza chamadas a diferentes provedores de IA (OpenAI, Anthropic, Google e outros) usando uma única interface. Ela é muito usada por desenvolvedores e empresas que integram IA em seus produtos.

Segundo a investigação, o código malicioso não estava no GitHub oficial do projeto. Ele só aparecia nos pacotes publicados no PyPI e em imagens Docker. Todos os sete wheels (versões para Linux, macOS e Windows) instalavam três arquivos escondidos dentro da pasta site-packages.
O detalhe mais grave: dois desses arquivos eram carregados sempre que o Python iniciava — mesmo em processos que nunca importavam a LiteLLM. Isso significa que o pip, editores de código, servidores de linguagem e pipelines de CI ficavam todos expostos ao ladrão de credenciais.
Como o ataque foi montado
O relatório da LiteLLM aponta que o invasor obteve as credenciais do GitHub CLI de três desenvolvedores. A empresa acredita que elas foram capturadas nos logs de uma instalação interna da própria LiteLLM que estava exposta à internet.
Com um token de proprietário da organização, o atacante contornou as proteções de branch e apontou o fluxo de publicação para um repositório sósia, o Berri-AI/litellm — note a diferença sutil do nome original. Em seguida, usou a credencial de um segundo desenvolvedor para passar pela etapa de aprovação, e o pipeline oficial acabou construindo, assinando e publicando os artefatos maliciosos.
Ou seja: o pacote veio pela via legítima e assinada, o que torna o ataque especialmente difícil de detectar. A única pista visível no código-fonte era uma linha extra num arquivo de configuração de build.
Por que isso importa pra você
Se você instalou litellm==1.107.0 entre os dias 21 de outubro de 2025 — a remoção do PyPI aconteceu às 13:23 UTC — é preciso agir. O mesmo vale para quem usou as imagens Docker v1.107.0, latest, main-latest e main-stable, que carregaram o código malicioso por algumas horas.
A boa notícia é que as versões 1.106.2, 1.107.0rc1 e 1.107.0rc2 estão limpas, assim como os pacotes complementares litellm-proxy-extras e litellm-enterprise. Quem usa essas versões não foi afetado por essa publicação específica.
O caso reforça uma lição que a comunidade de software vem aprendendo de forma dolorosa: confiar cegamente num pacote só porque ele veio de um repositório oficial e está assinado já não basta. Credenciais vazadas e repositórios sósia são vetores reais.
Na prática, vale fixar versões específicas de dependências, revisar atualizações antes de aplicá-las em produção e monitorar o comportamento de pacotes — ainda mais em ferramentas tão centrais quanto as que conectam suas aplicações a modelos de IA. Se desconfiar de comprometimento, troque as credenciais expostas o quanto antes.
Fonte: SafeDep – Real-time Open Source Software Supply Chain Security · Imagem de capa: SafeDep – Real-time Open Source Software Supply Chain Security
Quer aplicar IA no seu trabalho?
Aprenda qual ferramenta usar para cada tarefa — ChatGPT, Claude, Copilot, Gemini e NotebookLM — nos cursos do IA Todo Dia.
Conhecer os cursos →