LiteLLM 1.107.0 en PyPI llevaba un robacredenciales: cómo secuestraron el pipeline de releases con tokens de tres desarrolladores

By Carlos Montiel | Especialista en IA Empresarial
Read in English →
Publicado: 2026-10-25 | Por: Carlos Montiel | Lectura: ~6 minutos
LiteLLM 1.107.0 en PyPI llevaba un robacredenciales: cómo secuestraron el pipeline de releases con tokens de tres desarrolladores

LiteLLM es el gateway que muchas empresas ponen delante de sus modelos para centralizar claves de OpenAI, Anthropic o AWS Bedrock. El 21 de octubre alguien publicó con las propias credenciales de sus mantenedores una versión 1.107.0 con un robacredenciales y una puerta trasera. La parte instructiva no es el malware: es cómo se saltaron los controles de release.

Qué pasó, según el reporte oficial de LiteLLM

LiteLLM publicó un informe del incidente del 21 de octubre de 2026: el pipeline de release fue comprometido y una versión maliciosa litellm==1.107.0 llegó a PyPI y a los registros de contenedores. El propio informe advierte que algunas suposiciones iniciales resultaron inexactas o incompletas, así que conviene leerlo como un reporte en evolución. Socket, Datadog Security Labs, StepSecurity, OX Security y Mend publicaron análisis del mismo incidente.

Hora (UTC, 21 oct) Evento 10:08 Una credencial de desarrollador con privilegios anula la protección de ramas 10:46 Corre un workflow desde Berri-AI/litellm (un guion de diferencia con BerriAI/litellm) 11:11 Una segunda credencial satisface la aprobación de producción 11:39 Siete wheels maliciosos de 1.107.0 suben a PyPI 11:46 Se publican imágenes Docker maliciosas 11:53 Una tercera credencial borra los registros de ejecución 13:23 PyPI retira 1.107.0 14:20 Docker Hub retira o reapunta las etiquetas afectadas

Ventanas de exposición: PyPI, de 11:39 a 13:23 UTC; Docker Hub (v1.107.0, latest, main-latest, main-stable), de 11:46 a 14:20 UTC. El tag de código v1.107.0 en el repositorio oficial no contiene los archivos maliciosos, y según el informe los clientes con registro privado empresarial no se vieron afectados.

Cómo funciona el ataque: el pipeline como objetivo

El atacante no vulneró PyPI: usó tres sets de tokens OAuth de GitHub CLI de desarrolladores. Con uno, con permisos de propietario de la organización, desactivó la protección de ramas y modificó el workflow de release; con otro cumplió la aprobación que exigía producción; con el tercero borró el rastro. Datadog añade que el fork usado, Berri-AI/litellm, se parece al legítimo en un solo guion. LiteLLM dice que permisos de release se habían ampliado temporalmente esa semana, lo que facilitó que dos credenciales robadas bastaran.

Causa raíz: aún no confirmada. LiteLLM plantea que los tokens pudieron quedar incrustados en cuerpos de respuesta por Claude Code y escribirse en logs de una instancia interna expuesta a internet; también detectó una cuenta de usuario inesperada en ese despliegue y sospecha una vulnerabilidad recientemente parcheada. Otros medios hablaron de una "master key" filtrada en un repositorio público; el informe oficial no la señala como causa raíz, solo la lista entre los secretos a rotar. Tratá ambas versiones como hipótesis.

Qué hacía el paquete

Según Mend, los siete wheels compilados traían tres archivos extra. Uno es un hook .pth que se ejecuta cada vez que arranca Python, aunque nunca importes LiteLLM; otro es un cargador que descarga y ejecuta código remoto cada hora (una puerta trasera tipo RAT, en palabras de OX Security). El informe oficial nombra los archivos cook.pth, cook.py y sitecustomize.py. Un daemon de Python se queda en segundo plano con un lockfile en /tmp/remote_code_loader.lock. Quitar solo la carpeta de LiteLLM no basta: los componentes de arranque viven fuera de ella.

Qué hacer si instalaste 1.107.0

Qué significa para una empresa que usa gateways de IA

Lectura para tu empresa: un gateway de LLM concentra las claves de todos tus proveedores, así que comprometerlo equivale a comprometerlos a todos. Tres controles concretos: (1) fijá versiones con hash y no actualices automáticamente dependencias de infraestructura crítica el día del release; (2) en tus propios pipelines, no relajes aprobaciones de release "temporalmente" y usá tokens de corta vida con alcance mínimo, nunca de propietario de organización; (3) mantené una lista de qué claves de IA viven en cada gateway para poder rotarlas en horas, no en días.
Carlos Montiel
Arquitecto de Soluciones IA Empresarial
Especialista en LLMs, Agentes y Orquestación
guatemalia.com/#contacto · info@guatemalia.com

¿Necesitas implementar IA en tu empresa?

Carlos Montiel es arquitecto de soluciones IA empresarial. Implementa LLMs, Agentes, RAG y orquestadores en empresas de Guatemala y Latinoamérica. Contáctalo para una consultoría.

Contactar a Carlos Montiel

info@guatemalia.com