GHSA-923m-gv2p-w5qp

Django: has_vary_header may expose cached responses when Vary values contain whitespace

At a glance

Published
Updated
CVE
CVE-2026-48587
Aliases
BIT-django-2026-48587, PYSEC-2026-198
CVSS_V3
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N
CVSS_V4
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N

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.

Affected packages

PackageVersions
PyPI · djangointroduced 0, fixed 5.2.15
PyPI · djangointroduced 6.0.0, fixed 6.0.6

References

Sources

SourceLicence
OSV.devCC-BY 4.0 — GitHub Advisory Database