Volver al inicio

Ataques PyPI LiteLLM Telnyx: Protección de la Cadena de Suministro

Informe PSF sobre compromiso de litellm y telnyx vía Trivy: lanzamientos maliciosos roban secretos y aseguran persistence. Recomendaciones incluyen período de cooldown P3D, lock-files con hashes y trusted publishers para protección de proyectos OSS.

Lanzamientos Maliciosos de LiteLLM y Telnyx: Cómo Protegerte
Advertisement 728x90

Ataques a la Cadena de Suministro de PyPI: Los Casos de LiteLLM y Telnyx con Recomendaciones Prácticas

Los atacantes comprometieron los paquetes litellm y telnyx filtrando un token de API de la dependencia Trivy. El 19 de marzo de 2026, se publicaron versiones maliciosas: litellm 1.82.7 y 1.82.8, telnyx 4.87.0 y 4.87.2. El código se activa al importar los módulos, escanea el entorno en busca de secretos y exfiltra datos a servidores remotos.

La carga maliciosa en litellm recopila claves SSH, credenciales de Git/Docker, archivos .env, tokens de K8s, contraseñas de bases de datos, configuraciones LDAP, historial de shell y claves criptográficas. Intenta extraer tokens de la nube de servidores de metadatos y AWS Secrets Manager. Los datos se envían a models.litellm.cloud. Para persistencia, crea un servicio SystemD llamado "System Telemetry Service" o un pod de K8s que carga instrucciones desde checkmarx.zone.

En telnyx, el código malicioso en _client.py carga etapas desde archivos WAV alojados en 8.42.209.203. En Windows, coloca msbuild.exe en la carpeta de Inicio para lanzamiento automático; en otros sistemas operativos, usa un script de Python. La versión 4.87.1 contenía un error tipográfico que bloqueaba la ejecución. La comunicación está vinculada a TeamPCP mediante una clave de cifrado.

Google AdInline article slot

Los desarrolladores respondieron rotando tokens, eliminando versiones e implementando editores de confianza en PyPI.

Características de los Ataques a Paquetes OSS Populares

A diferencia de los ataques típicos de PyPI (como typosquatting o paquetes nuevos), aquí se inyectó código malicioso en proyectos existentes de alto tráfico. La cadena: comprometer repositorios → robar tokens de PyPI/GitHub → publicar malware → recopilar credenciales de máquinas de desarrollo → compromisos repetidos.

LiteLLM se descargó más de 119 mil veces durante el ataque. Aproximadamente 40-50% de las instalaciones fueron sin especificar versión (la más reciente), unas 1700 instalaciones por minuto. Tiempos de respuesta de PyPI:

Google AdInline article slot
  • LiteLLM: desde la publicación hasta la cuarentena — 2 horas 32 minutos (13 reportes de usuarios).
  • Telnyx: 3 horas 42 minutos (cuarentena automática por usuarios de confianza).

Medidas de PyPI Contra Malware

Aproximadamente 700-800 proyectos nuevos se añaden diariamente. PyPI depende de la comunidad para escaneo y reportes mediante "Reportar como malicioso". Esta función, introducida en 2024, acelera la cuarentena. Los editores de confianza permiten respuestas automatizadas.

Recomendaciones: Período de Enfriamiento de Dependencias

Retrasar la instalación de nuevas versiones proporciona tiempo para la detección de malware. Formato: RFC 3339 (P3D = 3 días).

  • uv: globalmente en ~/.config/uv/uv.toml o pyproject.toml:
[tool.uv]
exclude-newer = "P3D"
  • pip v26.1+: en pip.conf:
[install]
uploaded-prior-to = P3D
  • pip 26.0 (fecha absoluta):
python -m pip install --uploaded-prior-to=$(date -d '-3days' -Idate) package

Solución alternativa para parches de seguridad: --uploaded-prior-to=P0D o Dependabot/Renovate (que ignoran retrasos).

Google AdInline article slot

Bloqueo de Dependencias para Reproducibilidad

Los archivos de bloqueo con hashes evitan la sustitución de código durante la reinstalación.

| Herramienta | Comando | Formato |

|------------|---------|--------|

| uv | uv lock | uv.lock |

| pip-tools | pip-compile --generate-hashes | requirements.txt |

| pipenv | pipenv lock | Pipfile.lock |

pip freeze es insuficiente — carece de hashes. Se espera pip lock (pylock.toml).

Protección de Proyectos OSS

  • Implemente editores de confianza en PyPI.
  • Use 2FA + claves de hardware para PyPI/GitHub.
  • Restrinja permisos de tokens (alcances).
  • Monitoree publicaciones mediante webhooks.
  • Escanee repositorios con Trivy/Grype.

Para máquinas de desarrollo:

  • Aisle entornos comprometidos.
  • Rote todas las credenciales.
  • Verifique persistencia (SystemD, pods de K8s, Inicio).
  • Analice tráfico/registros.

Conclusiones Clave

  • Los ataques explotan paquetes OSS reales; verifique nuevas versiones.
  • Un período de enfriamiento P3D + archivos de bloqueo = protección básica.
  • Más de 119 mil instalaciones de LiteLLM antes de la cuarentena; la última versión es riesgosa.
  • La exfiltración incluye metadatos de la nube y Secrets Manager.
  • Los editores de confianza y la comunidad aceleran la respuesta de PyPI.

— Editorial Team

Advertisement 728x90

Leer después