Cadeia de fornecimento
LiteLLM, biblioteca de IA com 92 milhões de downloads mensais, teve versão com malware que roubava credenciais
Durante cerca de duas horas, quem instalou a versão 1.107.0 do LiteLLM pelo pip ou pelo Docker recebeu um programa que recolhia credenciais da nuvem, chaves de IA e dados guardados no browser. A empresa já retirou os pacotes e manda voltar à 1.106.2, mas limpar a instalação não chega.

O LiteLLM, uma das ferramentas mais usadas por quem programa aplicações com inteligência artificial, foi vítima de um ataque à cadeia de fornecimento. Na manhã de 21 de outubro, um atacante conseguiu publicar no PyPI, o repositório de pacotes do Python, e no Docker uma versão 1.107.0 com malware que rouba credenciais e instala ferramentas para executar código à distância. A biblioteca serve de ponte entre as aplicações e modelos de IA de vários fornecedores, através de uma interface comum. Segundo o BleepingComputer, tem 92 milhões de downloads mensais no PyPI e é usada por empresas como a NVIDIA e a Netflix.
Quem foi afetado
A janela foi curta, mas suficiente. Segundo o relatório publicado pela própria LiteLLM, os sete pacotes da versão 1.107.0 estiveram no PyPI entre as 11h39 e as 13h23 UTC (12h39 e 14h23 em Lisboa). No Docker Hub, as etiquetas v1.107.0, latest, main-latest e main-stable apontaram para a imagem adulterada entre as 11h46 e as 14h20 UTC. Está em risco quem instalou o LiteLLM sem fixar a versão nesse intervalo, ou arrancou um contentor com uma dessas etiquetas. As versões anteriores são seguras, e os clientes da versão empresarial privada não foram afetados.
O código publicado no GitHub não tinha o malware. O atacante mexeu só nos pacotes de instalação, onde acrescentou três ficheiros (cook.pth, cook.py e sitecustomize.py) que o Python executa sozinho sempre que arranca. Segundo as empresas de segurança Socket e Endor Labs, citadas pelo BleepingComputer, o programa recolhia credenciais da AWS, Azure, Google Cloud e Kubernetes, chaves de serviços de IA, chaves SSH, ficheiros .env e até palavras-passe, cookies e dados de pagamento guardados nos browsers. Tudo era cifrado e enviado para um endereço controlado pelo atacante.
Como a LiteLLM foi atacada
A empresa já tinha sido alvo de um ataque semelhante em março e diz que reforçou depois o processo de publicação. Desta vez, o atacante tinha tokens de acesso ao GitHub de três programadores, um deles dono da organização, e usou-os para desligar as proteções e apontar a publicação para um repositório falso, Berri-AI/litellm em vez de BerriAI/litellm. A LiteLLM acredita que os tokens foram obtidos nos registos de um servidor interno exposto à internet. A empresa diz ter observado casos em que o Claude Code, o assistente de programação da Anthropic, incluía o token do GitHub nas respostas, que acabaram guardadas nesses registos.
O que fazer
Se instalaste a 1.107.0, a LiteLLM manda tratar o ambiente como comprometido. Não corras o pip para investigar, porque isso volta a ativar o malware. Apaga os três ficheiros e as versões compiladas em todas as pastas site-packages, termina o processo escondido que fica a correr e reinstala com a versão fixa 1.106.2, ou, melhor, reconstrói os ambientes do zero. Depois troca todas as credenciais a que a máquina tinha acesso, incluindo as chaves de fornecedores guardadas na base de dados do LiteLLM. A empresa tem ainda marcada para 27 de outubro a divulgação de outra vulnerabilidade, cuja correção já distribuiu aos clientes empresariais num registo privado, por isso convém confirmar nesse dia se há versão nova.



