Descripción general

Las versiones 0.1.8 a 0.1.14 de semantic-router declaran la dependencia litellm>=1.61.3 sin límite superior. Durante el período en que litellm==1.82.8 fue la última versión disponible en PyPI, cualquier instalación nueva de una versión afectada de semantic-router podía resolver y descargar esa wheel comprometida.

Mecanismo de ataque

La wheel maliciosa litellm==1.82.8 incluye un archivo litellm_init.pth que se ejecuta automáticamente al arrancar el intérprete Python, sin necesidad de importar el paquete explícitamente. Una vez activado, el payload recopila y exfiltra la siguiente información del entorno comprometido:

  • Variables de entorno del proceso
  • Credenciales de AWS, GCP y Azure
  • Claves SSH, configuraciones de Kubernetes e historial de shell
  • Credenciales de bases de datos y secretos de pipelines CI/CD
  • Carteras de criptomonedas

El payload de segunda etapa cifra los datos recopilados mediante AES-256 combinado con una clave pública RSA embebida, y los envía mediante una petición POST a:

code
https://models.litellm.cloud/

Alcance real de la exposición

El CVE-2026-42208 identifica específicamente la versión 1.82.8 como la comprometida. El resolvedor de pip selecciona la versión más reciente que satisfaga el rango declarado, por lo que el radio de impacto real en semantic-router corresponde a los usuarios que ejecutaron pip install durante la ventana temporal en que litellm==1.82.8 estuvo publicada en PyPI, no a todos los que alguna vez instalaron las versiones 0.1.8 a 0.1.14. La alerta sigue siendo válida: una instalación afectada pudo haber descargado la wheel maliciosa, pero la explotación está acotada temporalmente.

Versiones afectadas

  • semantic-router 0.1.8 hasta 0.1.14 (inclusive)

Parche disponible

El problema queda corregido en semantic-router 0.1.15, que eleva el límite inferior de la dependencia a litellm>=1.83.7, excluyendo así la versión comprometida del rango resoluble.

Mitigaciones alternativas

Para los equipos que no puedan actualizar de forma inmediata, se recomiendan las siguientes acciones:

1. Fijar la versión de litellm explícitamente en el proyecto propio:

bash
pip install "litellm>=1.83.7,!=1.82.8"

O declarar en requirements.txt o pyproject.toml:

code
litellm>=1.83.7,!=1.82.8

2. Auditar el entorno en busca del archivo malicioso:

bash
find $(python -c "import site; print(site.getsitepackages()[0])") -name "litellm_init.pth"

Si el archivo existe, eliminarlo de inmediato.

3. Rotar credenciales comprometidas:

Cualquier credencial accesible desde entornos donde se ejecutó una instalación afectada debe considerarse comprometida y rotarse sin demora. Esto incluye tokens de nube (AWS, GCP, Azure), claves SSH, secretos de CI/CD y credenciales de bases de datos.

Referencias

  • Reporte upstream: BerriAI/litellm issue #24512
  • Registro CVE: CVE-2026-42208

Créditos

Reporte original y triaje realizados por los mantenedores de litellm. Véase el issue #24512 en el repositorio oficial de BerriAI/litellm.