sistema: OPERATIVO
← volver a todos los hacks
SUPPLY CHAIN CRITICAL NEW

LiteLLM 1.107.0: una versión envenenada que roba credenciales al iniciar Python

El 21 de octubre de 2026 un LiteLLM 1.107.0 comprometido llegó a PyPI y a los registros de contenedores. Su hook de inicio .pth se ejecutaba en cada arranque de Python para recopilar credenciales cloud y de IA.

2026-10-27 // 6 min affects: litellm, litellm-proxy, python-environments, container-images

¿Qué es esto?

El 21 de octubre de 2026 se publicó en PyPI una compilación maliciosa de LiteLLM 1.107.0, distribuida también en las imágenes de contenedor oficiales. Microsoft Security Research documentó el incidente el 23 de octubre de 2026 y LiteLLM publicó su análisis de causa raíz ese mismo día, según una cronología de terceros. Microsoft no menciona ningún CVE; lo rastrea con la referencia interna TVM-2026-0003. Solo se informa como afectada la versión 1.107.0, y se cita la 1.106.2 como última versión segura. El paquete se retiró de PyPI el mismo día y las etiquetas de contenedor afectadas se eliminaron o se redirigieron a artefactos limpios.

Cómo funciona

Los wheels instalaban tres archivos adicionales en site-packages: un archivo .pth, un módulo Python que este importa y un sitecustomize.py. Python ejecuta las líneas .pth que contienen import al iniciar el intérprete, por lo que la carga útil se ejecutaba cada vez que Python arrancaba en ese entorno, aunque la aplicación nunca importara LiteLLM. Coincide con la técnica MITRE ATT&CK «Python startup hooks» (T1546.018).

Según Microsoft, la carga era un recolector de credenciales. Apuntaba a configuraciones de herramientas de desarrollo y de IA, credenciales cloud, datos del navegador, claves SSH, variables de entorno y las tablas de la base de datos del proxy de LiteLLM. Los datos se cifraban y se enviaban a un dominio controlado por el atacante. Una segunda ruta en Unix leía un puntero de un archivo alojado en GitHub y podía descargar código adicional; durante el análisis ese puntero estaba vacío y no se confirmó ninguna segunda etapa.

Lo que se subvirtió fue la compilación, no el código fuente. LiteLLM indica que credenciales de GitHub robadas de varios ingenieros permitieron al atacante redirigir el flujo de lanzamiento a un repositorio idéntico y superar la aprobación de producción. Una cronología de terceros sitúa el origen en una clave sin revocar subida a un repositorio público en mayo de 2026. Microsoft aclara que no ha confirmado de forma independiente cómo se obtuvieron las credenciales, y algunos horarios difieren entre fuentes.

Ejemplo de prompt

Ilustrativo y censurado: muestra la forma de la debilidad, no una carga útil utilizable.

# Triaje de hooks de arranque en un entorno Python sospechoso (ilustrativo, defensivo, censurado)
# Patrón: una línea .pth que empieza por 'import' se ejecuta en cada arranque del intérprete.
#   [startup files]  -> .pth + módulo auxiliar + sitecustomize.py en site-packages  [REDACTED]
#   [collector]      -> recopila variables de entorno, claves cloud y de proveedores IA [REDACTED]
#   [exfil domain]   -> envío cifrado a un host controlado por el atacante          [REDACTED]
# Defensa: inspeccionar desde un sistema limpio (nunca ejecutar Python en el entorno
# sospechoso), fijar imágenes por digest, reconstruir y rotar todos los secretos legibles.

Por qué importa

Una pasarela LLM concentra por diseño claves de API de proveedores, roles cloud y bases de datos, así que una sola versión comprometida reúne muchos secretos. El mecanismo de hook de inicio también frustra la limpieza habitual: borrar la carpeta litellm deja los archivos del hook. LiteLLM recomienda asumir compromiso si 1.107.0 se ejecutó en un entorno o si un contenedor usó el digest de imagen afectado. No se ha publicado el número de instalaciones.

Defensas

  • Busque 1.107.0 en lockfiles, cachés, espejos internos, registros de compilación y contenedores en ejecución. Fije las imágenes por digest, no por etiquetas mutables.
  • No ejecute pip ni Python en un entorno sospechoso para investigar, porque el arranque vuelve a ejecutar los hooks. Inspeccione desde un sistema limpio.
  • Reconstruya desde artefactos verificados y confirme que los tres archivos de inicio no están en site-packages.
  • Rote todo lo que el host podía leer: claves de proveedores, claves maestras y virtuales, secretos cloud y CI, claves SSH, URL de bases de datos. Revoque las sesiones activas.
  • Revise los registros de red y de auditoría cloud: tráfico hacia el dominio de exfiltración y uso inesperado de credenciales de rol de instancia.
  • Use lockfiles con hash, procedencia verificada, egress restringido y tokens de lanzamiento de alcance limitado con aprobación de varias personas obligatoria.

Status

ElementoDetalle
AfectadoLiteLLM 1.107.0 (wheels de PyPI, etiquetas de contenedor)
Última versión segura1.106.2
Publicación maliciosa2026-10-21
Análisis de Microsoft2026-10-23
IdentificadorSin CVE; Microsoft TVM-2026-0003

Sources