Atacantes cuelan un ladrón de credenciales en LiteLLM, una herramienta de IA con 23 millones de descargas semanales
Una cadena de publicación secuestrada empujó una versión manipulada de la popular puerta de enlace de IA a PyPI y Docker el miércoles. Estuvo disponible unas dos horas, robando claves de la nube y contraseñas de cada máquina que la instaló.
Puntos clave
- Atacantes secuestraron el sistema de publicación de LiteLLM, una popular herramienta de código abierto que dirige las peticiones entre aplicaciones y proveedores de modelos de IA, y publicaron una…
- La versión maliciosa llevaba tres archivos que no existen en el proyecto genuino: cook.pth, cook.py y sitecustomize.py.
- LiteLLM dice que los intrusos trabajaron a través de las cuentas de GitHub de tres de sus ingenieros, al parecer con tokens OAuth de GitHub CLI robados.
Atacantes secuestraron el sistema de publicación de LiteLLM, una popular herramienta de código abierto que dirige las peticiones entre aplicaciones y proveedores de modelos de IA, y publicaron una versión maliciosa en el Python Package Index el miércoles 21 de octubre. La versión envenenada, la 1.107.0, también salió a través de las imágenes oficiales de Docker de LiteLLM. El paquete se descarga unas 23 millones de veces por semana, según Datadog Security Labs, lo que lo convierte en una de las piezas de infraestructura más usadas en el desarrollo de IA.
Qué hacía el programa malicioso
La versión maliciosa llevaba tres archivos que no existen en el proyecto genuino: cook.pth, cook.py y sitecustomize.py. Una vez instalados, quedaban en una carpeta de Python que el intérprete lee cada vez que arranca, así que el código se ejecutaba con cualquier inicio de Python, incluso en programas que nunca usaron LiteLLM. Uno de los archivos ejecutaba un ladrón de credenciales que, según las firmas de seguridad, buscaba claves SSH y GPG, credenciales de la nube de AWS, Microsoft Azure y Google Cloud, secretos de Kubernetes y Docker, contraseñas y cookies de navegadores, y las claves de proveedores de IA guardadas en las bases de datos del proxy de LiteLLM. Un segundo componente despertaba cada hora para descargar y ejecutar código nuevo desde un servidor controlado por los atacantes, lo que les daba una puerta trasera permanente en las máquinas infectadas.
Cómo entraron los atacantes
LiteLLM dice que los intrusos trabajaron a través de las cuentas de GitHub de tres de sus ingenieros, al parecer con tokens OAuth de GitHub CLI robados. Una cuenta se usó para lanzar el proceso privado de publicación y otra para aprobarlo, y la ejecución construyó la versión desde una copia maliciosa del proyecto llamada Berri-AI/litellm, con un guion de diferencia respecto a la real, BerriAI/litellm. La empresa revocó todos los tokens implicados y redujo su organización de GitHub a un solo usuario no afectado mientras investiga. Oliver Jensen, director de seguridad de LiteLLM, dijo que el equipo aún no sabe cómo robaron los tokens.
Dos horas en el estante
La versión mala salió en PyPI a las 11:39 UTC y fue retirada a las 13:23 UTC, una ventana de unas dos horas, según JFrog Security Research. Las etiquetas de Docker v1.107.0, latest, main-latest y main-stable apuntaron a las imágenes envenenadas hasta cerca de las 14:20 UTC. Equipos de Upwind, SafeDep, Socket y StepSecurity publicaron análisis el mismo día. Es la segunda vez que LiteLLM sufre un ataque así este año: en marzo, las versiones 1.82.7 y 1.82.8 fueron envenenadas en un ataque vinculado después al grupo TeamPCP, aunque los investigadores dicen que no se ha establecido ningún vínculo entre los dos incidentes.
Qué deben hacer los usuarios
Quien haya instalado la versión 1.107.0 debe dar por expuesta cada credencial de esa máquina. Las firmas de seguridad recomiendan reconstruir desde la versión limpia 1.106.2, borrar a mano los tres archivos plantados porque desinstalar el paquete los deja en su sitio, y rotar las claves de la nube, las claves SSH y los tokens de servicios de IA. Quitar el paquete sin más no basta, porque los archivos plantados quedan fuera de él y el cargador horario sigue activo hasta que se le detiene.
Fuentes
Información de The Hacker News, Datadog Security Labs, TechCrunch y SafeDep, enlazada abajo.
Cronología
- Mar 2026Atacantes envenenan las versiones 1.82.7 y 1.82.8 de LiteLLM en un ataque anterior a la cadena de suministro, vinculado después al grupo TeamPCP.
- Oct 21, 2026La versión maliciosa 1.107.0 de LiteLLM sale en PyPI a las 11:39 UTC con un ladrón de credenciales y una puerta trasera dentro.
- Oct 21, 2026PyPI retira la versión a las 13:23 UTC. LiteLLM revoca los tokens de GitHub robados y abre una investigación.
Fuentes
- The Hacker News: LiteLLM Compromised in Supply Chain Attack Delivering Credential Stealer and Backdoor
- Datadog Security Labs: LiteLLM supply chain compromise: What you need to know
- TechCrunch: The internet is having a very bad cybersecurity day
- SafeDep: Compromised LiteLLM 1.107.0 on PyPI Installs a Credential Stealer and Backdoor