---
id: CVE-2026-48587
aliases:
  - GHSA-923m-gv2p-w5qp
  - BIT-django-2026-48587
  - PYSEC-2026-198
title: >-
  Django: has_vary_header may expose cached responses when Vary values contain
  whitespace
summary: >-
  Django: has_vary_header may expose cached responses when Vary values contain
  whitespace
severity: low
cvss: 3.1
cvssVector: 'CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N'
vendor: django
product: django
ecosystem: pip
affected:
  - django < 5.2.15
  - 'django >= 6.0.0, < 6.0.6'
patched:
  - django 5.2.15
  - django 6.0.6
published: '2026-06-03'
updated: '2026-09-10'
sourceUpdated: '2026-09-10T03:50:48.942703912Z'
source: OSV
sourceUrl: 'https://osv.dev/vulnerability/GHSA-923m-gv2p-w5qp'
references:
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-48587'
  - url: >-
      https://github.com/django/django/commit/1721035a72624aad7b38dd19b14013efd94b24b8
  - url: >-
      https://github.com/django/django/commit/42aa0b3364d312e7c6472258d8b0e9c0277fbf22
  - url: >-
      https://github.com/django/django/commit/9b62b0af71a14c657d19d95371630ba839e83d9a
  - url: 'https://docs.djangoproject.com/en/dev/releases/security'
  - url: 'https://github.com/django/django'
  - url: >-
      https://github.com/pypa/advisory-database/tree/main/vulns/django/PYSEC-2026-198.yaml
  - url: 'https://groups.google.com/g/django-announce'
  - url: 'https://www.djangoproject.com/weblog/2026/jun/03/security-releases'
tags:
  - osv
  - pip
epss: 0.00367
epssPercentile: 0.3054
ingestedAt: '2026-08-08T19:14:54.300Z'
---

## Overview

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

- `django < 5.2.15`
- `django >= 6.0.0, < 6.0.6`

## Remediation

Upgrade to a patched release:

- `django 5.2.15`
- `django 6.0.6`
