CVE-2026-54625

django CMS: Page cache ignores plugin-declared Vary headers (disclosure & poisoning)

State
Published
Severity
4.8 Medium
Published
Aug 20, 2026
Updated
Aug 20, 2026
Reserved
Jun 15, 2026

Read the record on cve.org

Description

django CMS is a content management system powered by Django. Prior to 5.0.8 and in 5.1.0a1, the django CMS page cache in cms/cache/page.py ignores request headers declared by plugins through get_vary_cache_on(). The _page_cache_key function includes the cache prefix, site, language, path, and timezone but not the declared header values. Although set_page_cache adds those names to the response Vary header, get_page_cache retrieves the first stored variant under the same header-agnostic key. When CMS_PAGE_CACHE is enabled and a plugin varies content on a header such as Country-Code, one visitor can receive another visitor’s request-specific content, and an unauthenticated attacker can prime the cache with attacker-chosen content. This issue is fixed in versions 5.0.8 and 5.1.0.

Scores

CVSSScoreVectorSource
3.14.8 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:NGitHub_M

Weaknesses

  • CWE-349 Acceptance of Extraneous Untrusted Data With Trusted Data
  • CWE-524 Use of Cache Containing Sensitive Information

Affected Products

ProductVersions
django-cmsdjango-cms
  • < 5.0.8Affected
  • >= 5.1.0a1, < 5.1.0Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.