1 puntos por GN⁺ 2026-03-25 | Aún no hay comentarios. | Compartir por WhatsApp
  • 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

      1. PyPI: eliminar o hacer yank de litellm 1.82.8 de inmediato
      1. 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
      1. 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.

Aún no hay comentarios.