
Ciberseguridad · Inteligencia Artificial
Ataque a LiteLLM: revisa las claves de IA de tu empresa
¿Tus agentes de IA usan LiteLLM o guardan claves de OpenAI y Claude? La versión 1.107.0 robó credenciales: qué pasó, cómo saber si te afecta y qué rotar ya.
¿Qué pasó con LiteLLM?
El 21 de octubre de 2026 se publicó una versión maliciosa de LiteLLM, la 1.107.0, que robaba credenciales y abría una puerta trasera en los servidores donde se instalaba. LiteLLM es una pieza muy usada para conectar aplicaciones con varios modelos de IA (OpenAI, Claude, Gemini) desde un solo punto, así que guarda justo las claves más valiosas. Si tu empresa o tu proveedor la instaló ese día, hay que tratar el servidor como comprometido y rotar todas las claves que tenía a su alcance.
Resumen rápido
- El paquete malicioso estuvo en PyPI de 11:39 a 13:23 UTC del 21 de octubre, y en Docker Hub (etiquetas
v1.107.0,latest,main-latestymain-stable) hasta las 14:20 UTC. - Robaba credenciales cada vez que arrancaba Python y cargaba herramientas de ejecución remota.
- La versión segura es la
1.106.2o cualquier versión fijada antes del incidente; los clientes con la edición Enterprise privada no se vieron afectados. - El ataque empezó con tokens de GitHub de desarrolladores que quedaron expuestos en registros (logs) de un sistema interno accesible desde internet.
- Varias firmas de seguridad lo describen como el segundo compromiso de LiteLLM en el año.
Cómo ocurrió, paso a paso
El informe del incidente publicado por LiteLLM describe una cadena de fallas, no un solo error:
| Paso | Qué pasó | Lección para cualquier empresa |
|---|---|---|
| 1 | Se ampliaron temporalmente los permisos de publicación de dos ingenieros | Los permisos "temporales" son los que nadie recuerda quitar |
| 2 | Tokens de GitHub de desarrolladores aparecieron en los logs de un sistema interno | Los logs también son información secreta |
| 3 | Ese sistema estaba expuesto a internet con una cuenta de nombre inofensivo | Inventario de lo que está publicado, sin excepciones |
| 4 | Con el token de un dueño de la organización se desactivó la protección de ramas | Las cuentas de administrador no deben usarse en el día a día |
| 5 | El proceso de publicación se apuntó a un repositorio imitador (Berri-AI en lugar de BerriAI) | Un guion de diferencia basta para engañar a un sistema automático |
LiteLLM advierte que parte de su informe inicial se corrigió después, así que conviene revisar su versión más reciente. Análisis independientes como el de Wiz coinciden en lo esencial: quien la instaló debe asumir que sus credenciales salieron.
¿Por qué le importa a una pyme que no programa?
Porque muchas pymes ya tienen agentes de IA, chatbots o automatizaciones montadas por un proveedor o un freelancer, y no saben qué piezas usan por dentro. Un "gateway" como LiteLLM es cómodo: centraliza las claves de OpenAI, Anthropic y Google, controla el gasto y permite cambiar de modelo. Ese mismo diseño lo convierte en un cofre: quien lo abre se lleva todas las llaves a la vez.
Las consecuencias para el negocio son concretas: facturas de IA que se disparan porque alguien usa tus claves, acceso a la base de datos de clientes conectada al agente, y en el peor caso acceso a tu nube. Es el mismo patrón que vimos con el ataque a las apps de ConnectWise en Microsoft 365: el atacante no entra por la puerta principal, entra por una herramienta de confianza.
El ángulo de Zero Azul: el inventario de llaves de un agente de IA
Cuando montamos o revisamos un agente de IA, la primera pregunta no es qué modelo usa, sino qué llaves tiene al alcance el servidor donde corre. Esta es la tabla que usamos y que cualquier empresa puede pedirle a su proveedor:
| Llave | Dónde suele estar | Qué hacer si hubo exposición |
|---|---|---|
| Claves de OpenAI, Anthropic, Google | Variables de entorno o base de datos del gateway | Rotar y poner límite de gasto mensual por clave |
| Clave maestra y claves virtuales del gateway | Configuración del proxy | Regenerar todas, no solo la maestra |
| Contraseña de la base de datos | Cadena de conexión (DATABASE_URL) | Cambiar y revisar accesos recientes |
| Rol o credenciales de la nube | Rol de la instancia o del contenedor | Rotar y revisar uso desde fuera de tu infraestructura |
| Tokens de WhatsApp, CRM, n8n, Shopify | Variables de entorno de otros procesos del mismo servidor | Rotar todos los que compartan servidor |
Tres reglas que aplicamos para que un incidente así no se convierta en un desastre:
- Versiones fijas, nunca "latest". El ataque llegó a quien instaló la versión más reciente o usaba la etiqueta
latestde Docker. Fijar la versión exacta y actualizar con revisión evita recibir una versión envenenada el mismo día. - Una clave por agente, con tope de gasto. Si una clave se filtra, el daño queda limitado a un agente y a un presupuesto, y se rota sin tumbar lo demás.
- Los logs no guardan secretos. El origen de este ataque fueron tokens que quedaron escritos en registros. Revisamos que ni el agente ni las herramientas de desarrollo dejen claves en los logs.
Qué hacer esta semana
- Pregunta a tu equipo o proveedor si algún sistema usa LiteLLM y qué versión; LiteLLM recomienda revisar con
pip show litellm. - Si se instaló la 1.107.0: no ejecutes un
pip installencima, porque cualquier arranque de Python reactiva el malware. Reconstruye el entorno desde cero con la 1.106.2. - Rota todas las llaves de la tabla anterior que ese servidor podía ver, no solo las de IA.
- Revisa los paneles de facturación de OpenAI, Anthropic y Google por consumos inusuales desde el 21 de octubre.
- Aunque no uses LiteLLM, haz el inventario de llaves de tus agentes y pon límites de gasto.
Si necesitas ayuda para revisar tus agentes, en Zero Azul hacemos auditorías de ciberseguridad para pymes y montamos infraestructura de IA empresarial con claves separadas, límites de gasto y versiones controladas. Para profundizar, lee cómo proteger tu empresa cuando los agentes de IA son vectores de ataque y las vulnerabilidades de n8n de octubre.
Preguntas frecuentes
¿Qué es LiteLLM y por qué fue atacado?
LiteLLM es una herramienta de código abierto que conecta aplicaciones con varios modelos de IA, como OpenAI, Claude o Gemini, desde un solo punto. Fue atacado porque guarda las claves de esos proveedores, y su versión 1.107.0, publicada el 21 de octubre de 2026, incluía un programa que robaba credenciales.
¿Cómo sé si mi empresa instaló la versión maliciosa de LiteLLM?
Pide a tu equipo o proveedor que revise la versión instalada con el comando pip show litellm y que busque los archivos cook.pth y sitecustomize.py. Si aparece la 1.107.0 o se usó la imagen de Docker con la etiqueta latest ese día, hay que asumir que el servidor está comprometido.
¿Qué claves debo cambiar después del ataque a LiteLLM?
Todas las que el servidor afectado podía ver: claves de OpenAI, Anthropic y Google, la clave maestra y las claves virtuales del gateway, la contraseña de la base de datos, las credenciales de la nube y cualquier token de otros servicios guardado en ese servidor.
¿Es seguro usar un gateway de IA en mi empresa?
Sí, si se configura bien: con versiones fijas en lugar de la más reciente, una clave por agente con límite de gasto, secretos fuera de los logs y acceso restringido desde internet. El riesgo es que concentra todas las llaves, por eso necesita más cuidado que otras piezas.
¿Cómo evito que me cobren por uso de IA que no hice?
Pon un límite de gasto mensual en cada clave de OpenAI, Anthropic y Google, usa una clave distinta por agente o proyecto y revisa la facturación cada semana. Si ves consumos inusuales, rota la clave de inmediato.