django CMS: Stored XSS in edit-mode plugin exception rendering
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- Required
- Attack complexity
- High
- Impact type
- Cross-site scripting
- Confidentiality · integrity · availability
- Low · Low · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-79.
Summary
django CMS is an easy-to-use and developer-friendly enterprise content management system powered by Django. From 5.0.8 until 5.0.9, ContentRenderer.render_placeholder in cms/plugin_rendering.py can pass stored, attacker-controlled values to ContentRenderer.render_exception when plugin rendering fails in edit mode. Values from get_short_description(), the exception message, the placeholder, or placeholder.source are interpolated into a cms-rendering-exception heading and later returned through mark_safe. Because the heading is not escaped, stored HTML executes in an editor’s browser, and settings.DEBUG does not prevent the custom heading from rendering. The fix uses format_html to escape the message before safe placeholder output is returned. This issue is fixed in versions 5.0.9.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| django-cms | django-cms | 5.0.8 to before 5.0.9 | 5.0.9 | Patch available | CNA |
| — | django-cms (PyPI) | 5.0.8 to before 5.0.9 | 5.0.9 | Patch available | GHSA-hvq6-2r72-p2x7 |
- django-cms Vendordjango-cms Affected 5.0.8 to before 5.0.9 Fixed in 5.0.9 Patch available CNA
- django-cms (PyPI) Vendor— Affected 5.0.8 to before 5.0.9 Fixed in 5.0.9 Patch available GHSA-hvq6-2r72-p2x7
Remediation
- Fix · CNA django-cms (django-cms) Fixed in 5.0.9
- Fix · GHSA-hvq6-2r72-p2x7 django-cms (PyPI) Fixed in 5.0.9 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-75526
- 2026-10-03 Alias added: GHSA-hvq6-2r72-p2x7
References
Other 5
- https://github.com/django-cms/django-cms/security/advisories/GHSA-hvq6-2r72-p2x7
- https://github.com/django-cms/django-cms/pull/8711
- https://github.com/django-cms/django-cms/commit/b56a568844ff3702495945f73a31d0868285bf88
- https://github.com/django-cms/django-cms/releases/tag/5.0.9
- https://github.com/django-cms/django-cms
More django-cms vulnerabilities
- TI-2024-10485 Stored XSS in Open Source Project "django-cms" CVSS 3.1MEDIUM 4.8
- TI-2026-44152 Authorization bypass in django-cms CVSS 3.1MEDIUM 4.3
- TI-2015-04262 Cross-site request forgery (CSRF) vulnerability in django CMS before 3.0.14, 3.1.x before… CVSS 3.0HIGH 8.8
- TI-2026-39454 django CMS: Plugin move endpoint allows cyclic reparenting (DoS) CVSS 3.1HIGH 7.1
- TI-2026-45004 Authorization bypass in django-cms CVSS 3.1MEDIUM 6.5
- TI-2026-39455 django CMS: Structure endpoint bypasses page-view permission CVSS 3.1MEDIUM 6.5
Sources
- CVE-2026-75526 · CVE Program
- CVE-2026-75526 · NVD
- FIRST EPSS
- GHSA-hvq6-2r72-p2x7 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences