X41 D-Sec disclosed CVE-2026-48710 โ€” branded BadHost โ€” this week, and the dependency tree is the headline. Starlette, the ASGI implementation that underpins FastAPI, accepts invalid HTTP Host header values without validation, so the URL it reconstructs (used by middleware and `request.url.path`) can be made to differ from the actual routed path. A single character injected into the Host header bypasses path-based authorization in any app that checks `request.url`. Starlette ships 325 million weekly downloads. Affected packages explicitly named by the researchers: FastAPI, vLLM (where the bug was originally discovered), LiteLLM, Text Generation Inference, most OpenAI-shim proxies, MCP servers, agent harnesses, eval dashboards, model-management UIs. CVSS 7/10 โ€” Secwest notes that rating "materially understates" the real risk; X41 D-Sec rates it critical.

The exploit primitive is trivial. Starlette reconstructs the requested URL from the Host header + path; routing depends on the actual HTTP path; `request.url.path` uses the reconstructed URL. When authentication is gated on `request.url.path`, the two inconsistent views let an attacker get authentication code to approve a route they shouldn't reach. Beyond auth bypass, the primitive enables SSRF (server-side request forgery) and in some configurations remote code execution. Works against most systems not behind a properly configured Host-header-filtering firewall. Scanner: X41 D-Sec and Nemesis co-released one at mcp-scan.nemesis.services that checks any given server. The fix is Starlette 1.0.1 (released Friday) โ€” every downstream framework needs to bump.

The blast radius from the initial scan is the part builders should read before Monday. X41 D-Sec found live exposed instances spanning: biopharma clinical-trial databases and M&A data with SSRF; identity-verification stacks with face analysis, KYB, PII and internal codebase access; IoT/Industrial systems with SSH-via-bastion and remote code execution; full mailbox read/send/delete and S3 export; HR pipelines with candidate PII; CMS/marketing with subscriber lists and mass-email send/schedule; document management with read/upload/modify on scanned documents; cloud monitoring with AWS topology and metric queries; cybersecurity tools including live Nuclei scanner access; personal health/finance data including nutrition, expenses and subscriptions. MCP servers are particularly valuable because they hold credentials for *every* external system the agent is wired to โ€” single breach, multi-system blast radius.

Monday morning: if you ship anything on top of FastAPI, vLLM, LiteLLM, TGI, an MCP server, or any OpenAI-shim proxy, pin Starlette to 1.0.1+ immediately. The shape of the patch path is `pip install --upgrade starlette` (or your equivalent) followed by a service restart. Run mcp-scan.nemesis.services against your endpoints before you bed down for the night โ€” it's free, takes a single URL. If your agent infrastructure exposes MCP servers to the internet, audit the credential vault layer separately: any credentials those servers held in memory should be considered potentially compromised on any host that ran a vulnerable Starlette between Friday's release and your patch. The pairing with this morning's Anthropic Claude Mythos news is the larger lesson โ€” autonomous vuln-discovery LLMs are finding 10K+ bugs in OSS, and a single transitive-dependency CVE just exposed every agent harness using the dominant Python web framework. Patch cadence is now a builder-survival skill, not an ops chore.