GitHub Advisoryadvisory · PyPI
GHSA-923m-gv2p-w5qp Django: has_vary_header may expose cached responses when Vary values contain whitespace
LOW
Official page ↗
- Aliases
- CVE-2026-48587
- Ecosystem
- PyPI
- Packages
- django
- Severity
- Low
- CVSS vector
- CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N
- Weaknesses
- CWE-1023
- Reviewed
- 2026-08-07
Affected packages
• PyPI django: < 5.2.15 → fixed in 5.2.15
• PyPI django: >= 6.0.0, < 6.0.6 → fixed in 6.0.6
Description
An issue was discovered in Django 5.2 before 5.2.15 and 6.0 before 6.0.6.
`django.utils.cache.has_vary_header()` in Django does not strip leading or trailing whitespace from `Vary` response header values before comparison, which allows remote attackers to read cached responses via requests to URLs whose responses contain whitespace-padded Vary header values.
Earlier, unsupported Django series (such as 5.0.x, 4.1.x, and 3.2.x) were not evaluated and may also be affected.
Django would like to thank Navid Rezazadeh for reporting this issue.
Related
Alias · CVE (1)
- CVE-2026-48587 An issue was discovered in Django 5.2 before 5.2.15 and 6.0 before 6.0.6. vulnerability
Weakness · CWE (1)
- CWE-1023 Incomplete Comparison with Missing Factors weakness
References
- https://nvd.nist.gov/vuln/detail/CVE-2026-48587 advisory
- https://github.com/django/django/commit/1721035a72624aad7b38dd19b14013efd94b24b8 web
- https://github.com/django/django/commit/42aa0b3364d312e7c6472258d8b0e9c0277fbf22 web
- https://github.com/django/django/commit/9b62b0af71a14c657d19d95371630ba839e83d9a web
- https://docs.djangoproject.com/en/dev/releases/security web
- https://github.com/django/django package
- https://github.com/pypa/advisory-database/tree/main/vulns/django/PYSEC-2026-198.yaml web
- https://groups.google.com/g/django-announce web
- https://www.djangoproject.com/weblog/2026/jun/03/security-releases web