Versão maliciosa do LiteLLM v1.107.0 foi publicada no PyPI e em registries de container
Arquivos colocados em site-packages executam código ao iniciar o Python para roubar credenciais e abrir backdoor de execução remota.
Equipes de segurança descobriram que uma versão trojanizada do LiteLLM v1.107.0 foi enviada na quarta-feira, 21 de outubro, ao PyPI e a registries de container e chegou a distribuir wheels e imagens maliciosas antes de os artefatos serem colocados em quarentena e removidos.
A release maliciosa adicionou os arquivos cook.pth, cook.py e sitecustomize.py em site-packages, o que faz o payload rodar sempre que o Python é iniciado. Segundo os pesquisadores, o código pode coletar chaves SSH, tokens de provedores de nuvem, dados de navegador, segredos de CI e chaves de proxy do LiteLLM.
O sitecustomize.py cria um daemon desacoplado que roda a cada hora; ele consulta um apontador hospedado no GitHub para obter um domínio de comando e controle e pode baixar e executar código Python de segunda fase, dando ao invasor execução remota persistente.
As investigações indicam que o atacante utilizou um repositório com nome parecido e abusou de tokens OAuth do GitHub CLI roubados, vinculados a três engenheiros, para acionar o pipeline privado de releases do projeto. O LiteLLM revogou esses tokens, reforçou os controles de liberação e segue investigando o caso.
Pesquisadores observaram credenciais AWS roubadas sendo validadas poucas horas após a exfiltração. Eles recomendam remover ou travar dependências para não usar v1.107.0, caçar os três arquivos maliciosos e indicadores associados, isolar e reconstruir hosts afetados e rotacionar quaisquer segredos expostos. Como versão segura de referência, sugerem travar em v1.106.2.