- Se incluyó un archivo
.pth que se ejecuta automáticamente al iniciar el intérprete de Python, realizando la recolección y exfiltración de información sensible como claves API, claves SSH y tokens de nube
- El script malicioso está oculto mediante doble codificación base64, y los datos recolectados se cifran con AES-256 y luego se protegen con una clave pública RSA antes de enviarse a
litellm.cloud
- Si hay infección, pueden quedar expuestas las credenciales de entornos locales, CI/CD y servidores de producción
- También se reportó la presencia de código malicioso en la versión 1.82.7, por lo que ambas versiones son riesgosas
- La comunidad de seguridad recomienda con urgencia eliminar el paquete, rotar credenciales y reforzar la seguridad de la cadena de suministro
Incidente de seguridad por el archivo malicioso litellm_init.pth en el paquete PyPI de litellm 1.82.8
- El paquete wheel de PyPI de la versión litellm 1.82.8 incluía un archivo
.pth malicioso (litellm_init.pth), causando que un script de robo de credenciales se ejecutara automáticamente cada vez que se iniciaba el intérprete de Python
- Este archivo se ejecuta incluso sin el comando
import litellm, y se confirmó como una forma de ataque a la cadena de suministro (Supply Chain)
- El archivo malicioso está listado en el archivo
RECORD del paquete
-
Análisis del comportamiento malicioso
- El archivo
.pth aprovecha la característica de ejecutarse automáticamente al iniciar el intérprete de Python
- El script malicioso está oculto mediante doble codificación base64 y, al decodificarse, realiza los siguientes pasos
-
Fase 1: recolección de información
- Información del sistema:
hostname, whoami, uname -a, ip addr, ip route
- Variables de entorno: recolección de claves API, secretos y tokens mediante
printenv
- Claves SSH: archivos de claves principales y archivos de configuración dentro de
~/.ssh/
- Credenciales de Git:
~/.gitconfig, ~/.git-credentials
- Credenciales de nube: archivos de configuración y tokens relacionados con AWS, GCP y Azure
- Configuración de Kubernetes:
/etc/kubernetes/, ~/.kube/config, etc.
- Configuración de Docker:
~/.docker/config.json, etc.
- Configuración de gestores de paquetes:
.npmrc, .netrc, .vault-token, etc.
- Historial de shell:
.bash_history, .zsh_history, etc.
- Billeteras de criptomonedas:
~/.bitcoin/, ~/.ethereum/keystore/, etc.
- Claves privadas SSL/TLS:
/etc/ssl/private/, archivos .pem y .key
- Secretos de CI/CD:
terraform.tfvars, .gitlab-ci.yml, Jenkinsfile, etc.
- Credenciales de bases de datos: archivos de configuración de PostgreSQL, MySQL, Redis, etc.
- URL de webhooks: búsqueda de URLs de Slack, Discord, etc.
-
Fase 2: cifrado y exfiltración
- Los datos recolectados se guardan en archivos temporales
- Se genera una clave de sesión AES-256 de 32 bytes con
openssl rand
- Los datos se cifran con
openssl enc -aes-256-cbc -pbkdf2
- La clave de sesión se cifra con una clave pública RSA de 4096 bits embebida en el código
- Ambos archivos se agrupan en
tpcp.tar.gz y se envían
- Destino del envío:
https://models.litellm.cloud/ (distinto del dominio oficial litellm.ai)
-
Detalles técnicos
- El archivo
.pth está dentro de site-packages/ de Python y se ejecuta automáticamente al iniciar el intérprete
- La carga útil usa doble codificación base64 para evadir la detección
- El atacante operaba un servidor de exfiltración de datos usando el dominio
litellm.cloud
- Inicio de la clave pública RSA:
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvahaZDo8mucujrT15ry+...
-
Alcance del impacto
- Al instalar
litellm==1.82.8, puede filtrarse toda la información secreta, como variables de entorno, claves SSH y credenciales de nube
- Entornos afectados:
- Entornos locales de desarrollo
- Pipelines de CI/CD
- Contenedores Docker
- Servidores de producción
- Además, también se reportó que la versión 1.82.7 contiene código malicioso dentro de
proxy/proxy_server.py
-
Medidas recomendadas
-
- PyPI: eliminar o hacer yank de
litellm 1.82.8 de inmediato
-
- Usuarios:
- Verificar si existe
litellm_init.pth dentro de site-packages/
- Rotar todas las credenciales de los sistemas donde se haya instalado esa versión
-
- BerriAI: es necesario realizar una revisión de seguridad de las credenciales de despliegue a PyPI y del pipeline de CI/CD
-
Entorno de descubrimiento
- OS: Ubuntu 24.04 (contenedor Docker)
- Python: 3.13
- Ruta de instalación: PyPI
- Fecha de hallazgo: 24 de marzo de 2026
-
Reacción de la comunidad y discusión adicional
- Varios desarrolladores mencionaron que es posible que miles de personas ya hayan sido afectadas
- Algunos usuarios confirmaron que la versión 1.82.7 también estaba comprometida
- Expertos en seguridad destacaron la necesidad de fijar dependencias (pinning) y reforzar la seguridad de la cadena de suministro
agnosticlines y otros señalaron la fragilidad de GitHub Actions y la repetición de ataques a la cadena de suministro
MountainGod2 advirtió que “las dependencias deben fijarse por hash de commit y las nuevas versiones solo deben usarse tras verificarse”
- Varios proyectos (
mlflow, home-assistant, morphik-core, etc.) tomaron medidas para fijar o eliminar la versión de litellm
Aún no hay comentarios.