CVE-2026-48587 json
Potential exposure of private data via whitespace padding in Vary header
published 5mo ago modified last mo. also BIT-django-2026-48587 , EUVD-2026-34090 , GHSA-923m-gv2p-w5qp , PYSEC-2026-198
- cvss
- 3.1
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 30%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- pypi django 5.2.15, 6.0.6
- bitnami django 5.2.15, 6.0.6
- djangoproject Django 5.2.15, 6.0.6
- python-django Debian 12 3:3.2.25-0+deb12u5
- python-django Debian 14 3:5.2.15-1
debian advisories DEBIAN-CVE-2026-48587
- python-Django SLE Module for Package Hub 15 SP7 4.2.11-150600.3.59.1
suse advisories SUSE-SU-2026:2318-1
- python-Django5 openSUSE Tumbleweed 5.2.16-1.1
- python-Django openSUSE Tumbleweed 5.2.15-1.1
- python-Django6 openSUSE Tumbleweed 6.0.6-1.1
- python-Django openSUSE Leap 16.0 5.2.4-bp160.9.1
- python-Django4 openSUSE Tumbleweed 4.2.30-3.1
opensuse advisories openSUSE-SU-2026:11270-1openSUSE-SU-2026:11002-1openSUSE-SU-2026:11003-1openSUSE-SU-2026:20937-1openSUSE-SU-2026:10989-1
- py3-django Alpine 3.24 5.2.15-r0
alpine advisories ALPINE-CVE-2026-48587
Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
Is CVE-2026-48587 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerVendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2026-48587 updated cvss 3.1
django: Django: Information disclosure via improper handling of Vary header whitespace
-
Red Hat Ansible Automation Platform 2 automation-controller, ansible-automation-platform-26/hub-rhel9, ansible-automation-platform-27/hub-rhel9, ansible-automation-platform-26/gateway-rhel9, ansible-automation-platform-27/gateway-rhel9, ansible-automation-platform-24/lightspeed-rhel8, +11 more Red Hat Discovery 2 discovery/discovery-server-rhel9 Red Hat Satellite 6 satellite/iop-advisor-backend-rhel9affected: workaround, no fix available “Fix deferred”
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 5mo ago
Exploit prediction
0.37% chance of exploitation in the next 30 days, higher than 30% of all scored CVEs (FIRST EPSS, 2026-11-09).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 3.1 | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N |
| CNA | 4.0 | 2.3 | 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 |
| GitHub | 3.1 | 3.1 | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N |
| CNA | 4.0 | 2.3 | 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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| NVD | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N |
| OSV | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | django | <5.2.15 >=6.0.0, <6.0.6 >=5.2, <5.2.15 >=6.0, <6.0.6 |
5.2.15 6.0.6 |
| bitnami | django | >=5.2.0, <5.2.15 >=6.0.0, <6.0.6 |
5.2.15 6.0.6 |
Affected products
- djangoproject Django
Classification
- Weakness
-
- CWE-1023 Incomplete Comparison with Missing Factors
- Technology feeds
References
-
docs.djangoproject.com
/en/dev/releases/security/
vendor-advisory, patch, advisory
-
djangoproject.com
/weblog/2026/jun/03/security-releases/
vendor-advisory, patch, advisory
-
github.com
/django/django/commit/1721035a72624aad7b38dd19b14013efd94b24b8
web
-
github.com
/django/django/commit/42aa0b3364d312e7c6472258d8b0e9c0277fbf22
web
-
github.com
/django/django/commit/9b62b0af71a14c657d19d95371630ba839e83d9a
web
-
groups.google.com
/g/django-announce
mailing-list, web, release-notes, article, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-48587
advisory, web
-
docs.djangoproject.com
/en/dev/releases/security
web
-
github.com
/django/django
package
-
github.com
/pypa/advisory-database/tree/main/vulns/django/PYSEC-2026-198.yaml
web
-
djangoproject.com
/weblog/2026/jun/03/security-releases
web
-
github.com
/advisories/GHSA-923m-gv2p-w5qp
advisory
Sources
- CVE List CVE-2026-48587
- GitHub Advisory GHSA-923m-gv2p-w5qp
- NVD CVE-2026-48587
- OSV BIT-django-2026-48587
- OSV PYSEC-2026-198
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.