CVE-2026-35193: Django: UpdateCacheMiddleware may disclose private cached responses by omitting Authorization from Vary
(updated )
An issue was discovered in Django 5.2 before 5.2.15 and 6.0 before 6.0.6.
django.middleware.cache.UpdateCacheMiddleware in Django does not add Authorization to the Vary response header for requests bearing that header without Cache-Control: public, which allows remote attackers to read private cached responses via unauthenticated requests to the same URL.
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 Shai Berger for reporting this issue.
References
- docs.djangoproject.com/en/dev/releases/security
- github.com/advisories/GHSA-qpc8-7fxc-cm4p
- github.com/django/django/commit/050a3dc276f9142067260e990e4d8d42d5e32863
- github.com/django/django/commit/664652f1a2dd80d8a4cd491b4313cad915ae6669
- github.com/django/django/commit/a2faa8e895926ac5d63f72879b5ccf671b5b4ba9
- github.com/pypa/advisory-database/tree/main/vulns/django/PYSEC-2026-197.yaml
- groups.google.com/g/django-announce
- nvd.nist.gov/vuln/detail/CVE-2026-35193
- www.djangoproject.com/weblog/2026/jun/03/security-releases
Code Behaviors & Features
Detect and mitigate CVE-2026-35193 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →