Home

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.

PUBLISHED Reserved 2026-05-21 | Published 2026-06-03 | Updated 2026-06-03 | Assigner DSF




LOW: 3.1CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N
LOW: 2.3CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

Problem types

CWE-1023: Incomplete Comparison with Missing Factors

Product status

Default status
unaffected

6.0 (python) before 6.0.6
affected

6.0.6 (python)
unaffected

5.2 (python) before 5.2.15
affected

5.2.15 (python)
unaffected

Timeline

2026-05-11:Initial report received.
2026-05-26:Vulnerability confirmed.
2026-06-03:Security release issued.

Credits

Navid Rezazadeh reporter

Jake Howard remediation developer

Natalia Bidart coordinator

References

docs.djangoproject.com/en/dev/releases/security/ (Django security archive) vendor-advisory

groups.google.com/g/django-announce (Django releases announcements) mailing-list

www.djangoproject.com/weblog/2026/jun/03/security-releases/ (Django security releases issued: 6.0.6 and 5.2.15) vendor-advisory

cve.org (CVE-2026-48587)

nvd.nist.gov (CVE-2026-48587)

Download JSON