CVE-2026-54282
Reported by GitHub_M · Published June 22, 2026
Starlette is a lightweight ASGI framework/toolkit. Prior to 1.3.0, the HTTP request path is not validated before being used to reconstruct request.url. Because request.url is rebuilt by concatenating {scheme}://{host}{path} and re-parsing the result, a path that does not begin with / (for example @google.com) moves the authority boundary during re-parsing, so request.url.hostname and request.url.netloc become attacker-controlled. Code that reads request.url.hostname (rather than the Host header or scope) can therefore be misled into trusting an attacker-supplied host. This vulnerability is fixed in 1.3.0.
Risk Scores
Affected Products
| Vendor | Product | Versions |
|---|---|---|
| Kludex | starlette | < 1.3.0 |
| chainguard | airflow-postgres-fips-3 | 0, 0, 0 |
| chainguard | mlflow-fips | 0, 0, 0 |
| chainguard | semgrep | 0, 0, 0 |
| Kludex | starlette | < 1.3.0, < 1.3.0 |
| chainguard | prefect | 0, 0, 0 |
| chainguard | nemo | 0, 0, 0 |
| chainguard | litellm | 0, 0, 0 |
| chainguard | kserve | 0 |
| PyPI | starlette | 0 |
| chainguard | tritonserver-backend-vllm-cuda-13.0 | 0, 0, 0 |
| chainguard | prefect-fips | 0, 0, 0 |
| chainguard | airflow-3 | 0, 0, 0 |
| chainguard | tritonserver-backend-vllm-cuda-12.9 | 0, 0, 0 |
| wolfi | airflow-3 | 0, 0, 0 |
| wolfi | mlflow | 0, 0, 0 |
| wolfi | semgrep | 0, 0, 0 |
| wolfi | kserve | 0, 0, 0 |
| chainguard | mlflow | 0, 0, 0 |
| chainguard | airflow-core-3 | 0, 0, 0 |
Timeline
- Jun 15, 2026 CVE Published
- Jun 23, 2026 Security Advisory
- Jul 25, 2026 EPSS Score
- Aug 24, 2026 EPSS Score
- Aug 28, 2026 EPSS Score
- Aug 31, 2026 EPSS Score
References
- https://github.com/Kludex/starlette/security/advisories/GHSA-jp82-jpqv-5vv3 x_refsource_CONFIRM
- https://nvd.nist.gov/vuln/detail/CVE-2026-54282 advisory
- https://github.com/advisories/GHSA-jp82-jpqv-5vv3 advisory
- https://github.com/pypa/advisory-database/tree/main/vulns/starlette/PYSEC-2026-248.yaml advisory