Saltar al contenido
Carlos Estrada
IA

LiteLLM 1.107.0 traía malware: revisa si la instalaste

4 min de lectura
Persona con sudadera con capucha frente a una computadora en un cuarto oscuro iluminado por una pantalla verde

Si usas LiteLLM para conectar tus apps con modelos de IA como los de OpenAI o Anthropic, revisa tus servidores hoy. La versión 1.107.0 que se publicó el 21 de octubre de 2026 no la hizo el equipo del proyecto: la subió un atacante y venía con un programa que roba contraseñas y llaves.

Estuvo disponible pocas horas, pero si se instaló en tu equipo o en tu contenedor durante esa ventana, debes tratarlo como comprometido.

¿Qué pasó?

LiteLLM es una librería de Python, es decir, un paquete de código reutilizable, que funciona como puerta de entrada única a muchos proveedores de IA. Según el aviso oficial del proyecto, el 21 de octubre alguien usó credenciales robadas de desarrolladores para correr su proceso de publicación y sacar la versión 1.107.0 con archivos maliciosos.

En PyPI, el repositorio oficial de paquetes de Python, los siete archivos de esa versión estuvieron disponibles de las 11:39 a las 13:23 UTC. En Docker Hub, las etiquetas v1.107.0, latest, main-latest y main-stable apuntaron a imágenes alteradas de las 11:46 a las 14:20 UTC. En el registro de contenedores de GitHub (GHCR) las mismas etiquetas estuvieron afectadas hasta, a más tardar, las 13:51 UTC.

BleepingComputer explica que el atacante no tocó el código del proyecto, sino el paquete que se instala. Le agregó tres archivos (cook.pth, cook.py y sitecustomize.py) que Python ejecuta solo con arrancar. Por eso el malware se activa aunque tu programa ni siquiera llame a LiteLLM, e incluso si solo corres pip para investigar.

De acuerdo con ambas fuentes, el programa busca llaves de nube como AWS, Azure y Google Cloud, credenciales de Kubernetes y Docker, llaves de proveedores de IA guardadas en LiteLLM, archivos .env, llaves SSH y tokens de GitHub, npm y PyPI. Además deja un cargador que cada hora pide más código a un servidor externo. El proyecto aclara que el código fuente etiquetado en GitHub como v1.107.0 está limpio y que los clientes Enterprise con registro privado no se vieron afectados.

¿Por qué te importa?

LiteLLM se usa mucho como proxy para repartir peticiones entre modelos de IA. Eso significa que donde está instalado suele haber llaves valiosas: las de tus proveedores de IA, la contraseña de tu base de datos y los permisos de tu nube.

Es el segundo ataque de este tipo contra el proyecto en 2026, según BleepingComputer, y se suma a una ola de robos de llaves a desarrolladores. Si tus despliegues usan la etiqueta latest sin fijar versión, pudiste recibir la imagen alterada sin hacer nada.

¿Qué puedes hacer?

  • Revisa qué versión tienes en cada servidor, contenedor y entorno virtual. Si alguno tuvo la 1.107.0, considéralo comprometido.
  • No corras pip ni Python dentro del entorno afectado: eso vuelve a activar el malware. Mejor reconstruye la imagen o el entorno desde cero.
  • Fija la versión 1.106.2, que el proyecto señala como la última limpia, y deja de usar la etiqueta latest en producción.
  • Rota todas las llaves que ese equipo podía ver: las de tus proveedores de IA, la llave maestra y las virtuales de LiteLLM, la contraseña de la base de datos y los permisos de nube.
  • Si usas AWS, revisa en CloudTrail si esas credenciales se usaron desde fuera de tu infraestructura después de la fecha de instalación.

Sigue leyendo

Fuentes

Imagen de portada: foto de Tima Miroshnichenko en Pexels.