X41 D-Sec divulgó CVE-2026-48710 — bautizado BadHost — esta semana, y el árbol de dependencias es el titular. Starlette, la implementación ASGI que sostiene FastAPI, acepta valores inválidos de HTTP Host header sin validación, así que la URL que reconstruye (usada por middleware y `request.url.path`) puede hacerse diferir del path realmente ruteado. Un solo carácter inyectado en el Host header bypasea la autorización path-based en cualquier app que verifique `request.url`. Starlette envía 325 millones de descargas semanales. Paquetes afectados nombrados explícitamente por los investigadores: FastAPI, vLLM (donde el bug se descubrió originalmente), LiteLLM, Text Generation Inference, la mayoría de proxies OpenAI-shim, servidores MCP, harnesses de agentes, dashboards de eval, UIs de model-management. CVSS 7/10 — Secwest nota que ese rating "subestima materialmente" el riesgo real; X41 D-Sec lo califica crítico.
El primitivo de exploit es trivial. Starlette reconstruye la URL solicitada desde Host header + path; el ruteo depende del path HTTP real; `request.url.path` usa la URL reconstruida. Cuando la autenticación está gated en `request.url.path`, las dos vistas inconsistentes dejan a un atacante obtener el código de autenticación para aprobar una ruta que no debería alcanzar. Más allá del bypass de auth, el primitivo habilita SSRF (server-side request forgery) y en algunas configuraciones ejecución remota de código. Funciona contra la mayoría de sistemas que no estén detrás de un firewall correctamente configurado para filtrar Host headers. Scanner: X41 D-Sec y Nemesis co-lanzaron uno en mcp-scan.nemesis.services que verifica cualquier servidor dado. El fix es Starlette 1.0.1 (lanzado el viernes) — cada framework downstream necesita actualizar.
El blast radius del escaneo inicial es la parte que los builders deberían leer antes del lunes. X41 D-Sec encontró instancias vivas expuestas abarcando: bases de datos de clinical trial biopharma y datos M&A con SSRF; stacks de identity verification con análisis facial, KYB, PII y acceso a codebase interno; sistemas IoT/Industrial con SSH-vía-bastion y ejecución remota de código; lectura/envío/eliminación completa de mailbox y export S3; pipelines HR con PII de candidatos; CMS/marketing con listas de suscriptores y envío/scheduling de mass-email; document management con lectura/upload/modificación en documentos escaneados; cloud monitoring con topología AWS y queries de métricas; herramientas de ciberseguridad incluyendo acceso vivo al scanner Nuclei; datos personal health/finance incluyendo nutrición, gastos y suscripciones. Los servidores MCP son particularmente valiosos porque mantienen credenciales para *cada* sistema externo al que el agente está conectado — single breach, blast radius multi-sistema.
Lunes por la mañana: si shippas cualquier cosa encima de FastAPI, vLLM, LiteLLM, TGI, un servidor MCP, o cualquier proxy OpenAI-shim, pin Starlette a 1.0.1+ inmediatamente. La forma del path de parche es `pip install --upgrade starlette` (o tu equivalente) seguido por un reinicio de servicio. Corre mcp-scan.nemesis.services contra tus endpoints antes de irte a dormir esta noche — es gratis, toma una sola URL. Si tu infraestructura de agente expone servidores MCP a internet, audita la capa credential vault por separado: cualesquiera credenciales que esos servidores mantuvieran en memoria deberían considerarse potencialmente comprometidas en cualquier host que corrió una Starlette vulnerable entre el lanzamiento del viernes y tu parche. El emparejamiento con la noticia de Anthropic Claude Mythos de esta mañana es la lección más grande — los LLMs de descubrimiento autónomo de vulns están encontrando 10K+ bugs en OSS, y una sola CVE de dependencia transitiva acaba de exponer cada harness de agente que usa el framework Python web dominante. La cadencia de parches es ahora una habilidad de supervivencia para builders, no una tarea ops.
