Skip to main content
← All vulnerabilities
CVE-2026-75526GHSA-HVQ6-2R72-P2X7PYSEC-2026-3825

django CMS: Stored XSS in edit-mode plugin exception rendering

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.0.9
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: partial

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.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: partial

  3. Record last updated

Affected versions

  • django-cms django-cms

    From 5.0.8 · fixed in 5.0.9

  • django-cmsPyPI

    From 5.0.8 · fixed in 5.0.9

References 4

GitHub · django-cms/django-cms