CIBERPLANETA_
02 Sep 2026 · 19:12 Jarvis Ciberplaneta Vulnerabilidades 3 min de lectura
CVE-2026-48710: HTTP Request Smuggling en Kludex Starlette

CVE-2026-48710: HTTP Request Smuggling en Kludex Starlette

CVE-2026-48710: contrabando de peticiones HTTP en Starlette

Starlette, el framework/toolkit ligero ASGI sobre el que se construyen numerosas aplicaciones y APIs en Python (incluido el ecosistema de FastAPI), presenta una vulnerabilidad de HTTP Request/Response Smuggling catalogada como CVE-2026-48710 (CWE-444, "Inconsistent Interpretation of HTTP Requests"). La falla fue incorporada al catálogo CISA KEV (Known Exploited Vulnerabilities) el 2 de septiembre de 2026, lo que confirma que está siendo explotada activamente. Su puntuación es CVSS 6.5 (MEDIA), pero su facilidad de explotación y el enorme parque de aplicaciones afectadas la convierten en un riesgo prioritario.

Análisis Técnico

El origen del problema está en que, en las versiones afectadas, la cabecera HTTP Host no se validaba antes de ser usada para reconstruir el objeto request.url. Existe una discrepancia crítica entre dos rutas de código:

  • El algoritmo de enrutamiento de Starlette utiliza el path HTTP crudo tomado directamente del scope ASGI.
  • El objeto request.url (y por tanto request.url.path) se reconstruye concatenando http://{host}{path} y volviendo a parsear el resultado.

Cuando la cabecera Host contiene caracteres fuera de la gramática permitida para uri-host por RFC 9112 §3.2 y RFC 3986 §3.2.2 —en particular /, ? o #—, esos caracteres desplazan los límites de path, query y fragment durante el re-parseo, provocando que el request.url.path resultante ya no coincida con la ruta que el servidor realmente recibió.

Vector de Ataque

Consideremos una petición legítima a /foo. Un atacante envía:

  • GET /foo HTTP/1.1
  • Host: example.com/abc?bar=

Starlette reconstruye la URL como http://example.com/abc?bar=/foo, cuyo path parseado es /abc. Sin embargo, el router sigue despachando a /foo y el endpoint se ejecuta con normalidad. El resultado: cualquier middleware o código que lea request.url.path para tomar decisiones de seguridad "ve" /abc, mientras que la ejecución real ocurre en /foo. Esta inconsistencia permite eludir controles de autorización basados en la ruta (authentication/authorization bypass).

Impacto Operacional y de Seguridad

El impacto es especialmente grave en arquitecturas que aplican restricciones por prefijo de ruta:

  • Bypass de autenticación/autorización cuando el control de acceso depende de la URL reconstruida en lugar del path crudo del scope.
  • Middleware de seguridad que protege prefijos sensibles (por ejemplo /admin, /internal) puede ser burlado, ejecutando el endpoint protegido mientras el control "ve" una ruta inocua.
  • CISA advierte que esta debilidad puede encadenarse con CVE-2026-42271, ampliando el alcance del ataque.

Los despliegues situados tras un proxy o balanceador de carga solo están mitigados si ese proxy rechaza o normaliza la cabecera Host malformada antes de reenviarla, y la aplicación no confía en cabeceras controladas por el atacante (como X-Forwarded-Host) en ningún otro punto.

Productos Afectados

  • Kludex Starlette en todas las versiones anteriores a la 1.0.1.
  • Por extensión, aplicaciones y frameworks que dependen de Starlette y confían en request.url/request.url.path para decisiones de seguridad.

Al tratarse de un componente de código abierto ampliamente reutilizado, CISA subraya que la vulnerabilidad puede estar presente en múltiples productos de terceros que lo integran de forma transitiva.

Recomendaciones y Mitigación

Acciones Inmediatas Recomendadas

  • Actualizar Starlette a la versión 1.0.1 o superior, que valida la cabecera Host contra la gramática de RFC 9112 §3.2 / RFC 3986 §3.2.2 al construir request.url y recurre a scope["server"] ante valores malformados.
  • Revisar dependencias transitivas (pip list, SBOM) para detectar versiones vulnerables embebidas en otros paquetes.
  • Como mitigación defensiva, basar las decisiones de seguridad en el path crudo del scope ASGI, no en request.url.path.
  • Configurar el proxy/balanceador frontal para rechazar o normalizar cabeceras Host malformadas y no confiar en X-Forwarded-Host no verificado.
  • Organismos FCEB: cumplir la fecha límite 16 de septiembre de 2026 conforme a la directiva BOD 26-04; si no hay mitigación disponible, discontinuar el uso del producto.

Referencias Oficiales

// compartir: X Telegram LinkedIn WhatsApp
// ¿qué te parece este artículo?
// comentarios (0)
// sin comentarios aún
inicia sesión o regístrate para comentar.
← volver
[INFO] CVE-2026-48710: HTTP Request Smuggling en Kludex Starlette  ·  [INFO] CVE-2026-49869: RCE no autenticado en Kestra OSS por bypass de autenticacion  ·  [INFO] CVE-2026-83549: inyección de comandos y RCE en SonicWall SMA1000 Appliances  ·  [INFO] CVE-2026-83548: SSRF preautenticada crítica en SonicWall SMA1000 Appliances  ·  [INFO] CVE-2026-9586: Inyección SQL no autenticada con RCE en Sangoma Switchvox  ·  [INFO] CVE-2026-48710: HTTP Request Smuggling en Kludex Starlette  ·  [INFO] CVE-2026-49869: RCE no autenticado en Kestra OSS por bypass de autenticacion  ·  [INFO] CVE-2026-83549: inyección de comandos y RCE en SonicWall SMA1000 Appliances  ·  [INFO] CVE-2026-83548: SSRF preautenticada crítica en SonicWall SMA1000 Appliances  ·  [INFO] CVE-2026-9586: Inyección SQL no autenticada con RCE en Sangoma Switchvox  ·