LiteLLM — Ataque a la cadena de suministro distribuye roba-credenciales y puerta trasera
Fecha de publicación: 21 de octubre de 2026
Categoría: Malware / Inteligencia Artificial
Introducción
El ecosistema de desarrollo de inteligencia artificial se ha visto sacudido por un nuevo incidente de seguridad en la cadena de suministro de software. El popular paquete de Python LiteLLM fue comprometido en su versión 1.107.0, distribuyendo de manera maliciosa un componente roba-credenciales (credential stealer) y una puerta trasera (backdoor). El hallazgo y posterior reporte fue realizado por investigadores de SafeDep, Socket, StepSecurity y Upwind, alertando sobre la manipulación directa de los repositorios de distribución oficiales en PyPI y contenedores en Docker.
¿Qué es LiteLLM? (Análisis General)
LiteLLM es una biblioteca de Python ampliamente adoptada que simplifica la interacción con múltiples proveedores de modelos de lenguaje grandes (LLM), permitiendo a los desarrolladores unificar llamadas a APIs mediante una interfaz estándar y desplegar proxies autohospedados. Al ser un componente central en arquitecturas de IA que maneja llaves de API sensibles, tokens de proveedores de nube y configuraciones de modelos, su compromiso representa un vector de riesgo crítico para la confidencialidad de las organizaciones.
- Vector CVSS Estimado: 9.8 (Crítico) —
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H(Estimación razonada basada en ejecución remota de código en la cadena de suministro y exfiltración masiva de credenciales). - Clasificación CWE Estimada: CWE-506 (Embedded Malicious Code) y CWE-434 (Unrestricted Upload of File with Dangerous Type).
¿Cómo funciona? (Análisis Técnico)
El análisis forense realizado por los equipos de seguridad desvela un mecanismo de intrusión sofisticado que aprovecha las credenciales comprometidas de desarrolladores para inyectar código malicioso en la fase de construcción (build) y publicación del paquete.
-
Flujo inicial de infección y entrada: Los atacantes lograron utilizar tokens de OAuth de GitHub CLI robados de tres ingenieros del proyecto. Una cuenta se usó para activar la ejecución de la compilación automatizada (project-releaser) y otra para aprobarla. El paquete malicioso v1.107.0 fue distribuido a través de ruedas (wheels) de PyPI e imágenes de Docker.
-
Persistencia y ejecución previa a la importación: El malware se ejecuta en el intérprete de Python incluso antes de que se importe explícitamente la biblioteca LiteLLM. Esto se logra mediante un archivo de configuración de ruta denominado
cook.pthque contiene la instrucción de una sola líneaimport cook. Este mecanismo fuerza al intérprete a cargar y ejecutar el recolector de credenciales (privcollect) de forma automática al iniciar sesión en el entorno. -
Exfiltración de datos y puerta trasera (Backdoor):
- Robo de credenciales: El payload recopila tokens de la nube, cuentas de desarrollador, llaves privadas, archivos JSON de credenciales de herramientas de desarrollo de IA, variables de entorno y datos de navegación de navegadores basados en Chromium y Firefox. También extrae credenciales guardadas y configuraciones de proxies de LiteLLM.
- Empaquetado y C2: La información recopilada se comprime en un archivo GZIP-TAR y se envía mediante una petición HTTP POST a
litellm[.]dev/healthcheck. - Mecanismo de control secundario: Un segundo payload bifurca un demonio en segundo plano que consulta cada hora un repositorio de GitHub (
github[.]com/letters9813/domain.txt), lee un dominio y ejecuta código arbitrario obtenido mediante una petición HTTP GET contra<domain>/codepy.
Sistemas / Entornos Afectados
El incidente afecta específicamente a las implementaciones que descargaron e instalaron la versión 1.107.0 del paquete LiteLLM a través de PyPI o contenedores Docker. Las plataformas y variantes de compilación específicas afectadas incluyen:
litellm-1.107.0-cp310-abi3-macosx_10_12_x86_64.whllitellm-1.107.0-cp310-abi3-macosx_11_0_arm64.whllitellm-1.107.0-cp310-abi3-manylinux_2_28_aarch64.whllitellm-1.107.0-cp310-abi3-manylinux_2_28_x86_64.whllitellm-1.107.0-cp310-abi3-musllinux_1_2_aarch64.whllitellm-1.107.0-cp310-abi3-musllinux_1_2_x86_64.whllitellm-1.107.0-cp310-abi3-win_amd64.whllitellm-1.107.0.tar.gz(contiene el archivopyproject.tomlalterado sin payloads ejecutables directos).
Mitigación y Detección
Remediación
- Pin de versión seguro: Actualice inmediatamente los entornos afectados y fije explícitamente la versión segura anterior
1.106.2utilizando hashes de integridad (digest pinning). - Revocación de credenciales: Asuma el compromiso total de cualquier máquina o entorno de desarrollo donde se haya instalado la versión v1.107.0. Revoque y regenere todas las llaves de API de LLM, credenciales de nube, tokens de GitHub y secretos almacenados en dichas máquinas desde un entorno limpio y verificado.
- Hardenización de cuentas: El equipo de LiteLLM ha revocado todos los tokens de GitHub comprometidos y ha reducido drásticamente los permisos y accesos dentro de su organización en GitHub como mitigación temporal.
Detección
- Indicadores de Compromiso (IoCs):
- Presencia del archivo
cook.pthen los directorios de paquetes de Python. - Archivos ejecutables o scripts en directorios temporales que invoquen llamadas a
litellm[.]dev/healthcheck. - Conexiones de red salientes hacia el repositorio de GitHub
github[.]com/letters9813.
- Presencia del archivo
- Regla de Detección Conductual (Conceptual):
yaml
title: Detección de ejecución de archivo .pth sospechoso (Cook.pth) logsource: category: file_event product: linux / windows detection: selection: TargetFilename|endswith: 'cook.pth' condition: selection falsepositives: - Desconocido (altamente anómalo en entornos de producción estables). level: critical
Advertencia de Seguridad: Los ataques a la cadena de suministro de paquetes de IA representan un punto ciego operativo crítico. La ejecución automática de scripts de instalación mediante archivos
.pthbypasses los controles tradicionales basados en importaciones estáticas, exigiendo inspección estricta de dependencias en pipelines de CI/CD.
Recapitulando
El compromiso de la versión 1.107.0 de LiteLLM demuestra cómo los actores de amenazas continúan apuntando a las cadenas de suministro de software de inteligencia artificial para extraer credenciales propietarias y establecer puertas traseras persistentes. La rápida respuesta del equipo del proyecto al poner en cuarentena el paquete y revocar accesos mitiga la propagación futura, pero subraya la necesidad urgente de controles estrictos de integridad de dependencias en toda la industria.
Referencias
- Lakshmanan, R. (2026). LiteLLM Compromised in Supply Chain Attack Delivering Credential Stealer and Backdoor. The Hacker News. https://thehackernews.com/2026/10/litellm-compromised-in-supply-chain.html
- SafeDep. (2026). LiteLLM PyPI Compromise: Credential Stealer & Backdoor. SafeDep Security Advisory. https://safedep.io/litellm-pypi-compromise-credential-stealer-backdoor/#payload-2-the-backdoor-in-sitecustomizepy
- Socket. (2026). LiteLLM Compromise Analysis. Socket Blog. https://socket.dev/blog/litellm-compromise
- StepSecurity. (2026). LiteLLM 1.107.0 Compromised: PyPI Backdoored Wheels & Credential Stealer. StepSecurity Blog. https://www.stepsecurity.io/blog/litellm-1-107-0-compromised-pypi-backdoored-wheels-credential-stealer
- Upwind. (2026). LiteLLM 1.107.0 Supply Chain Attack: Malicious Code Found in PyPI Package. Upwind Threat Feed. https://www.upwind.io/feed/litellm-1-107-0-supply-chain-attack-malicious-code-found-in-pypi-package
- Python Package Index (PyPI). (2026). LiteLLM Project History and Quarantine Notice. https://pypi.org/project/litellm/#history
- BerriAI. (2026). GitHub Issue #47826: Security Incident Tracking. GitHub Repository. https://github.com/BerriAI/litellm/issues/47826
- FutureSearch. (2026). LiteLLM PyPI Supply Chain Attack Analysis. FutureSearch AI Blog. https://futuresearch.ai/blog/litellm-pypi-supply-chain-attack/