django CMS: Plugin move endpoint allows cyclic reparenting (DoS)
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · Low · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-674.
Summary
django CMS is an easy-to-use and developer-friendly enterprise content management system powered by Django. Prior to 5.0.8, the move_plugin endpoint in cms/admin/placeholderadmin.py accepts an attacker-controlled plugin_parent value without rejecting a plugin’s own identifier or a descendant identifier. A staff user with plugin-change permission under CMS_PERMISSION can create a parent_id cycle in the plugin tree. The _get_descendants_cte and _get_ancestors_cte queries in cms/models/pluginmodel.py have no cycle guard, so get_descendants() and later rendering, copy, or delete operations can recurse indefinitely or reach a database recursion limit, corrupting the tree and consuming request workers. This issue is fixed in versions 5.0.8.
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 | before 5.0.8 | 5.0.8 | Patch available | CNA |
| — | django-cms (PyPI) | before 5.0.8 | 5.0.8 | Patch available | GHSA-8jj7-4v57-frf5 |
- django-cms Vendordjango-cms Affected before 5.0.8 Fixed in 5.0.8 Patch available CNA
- django-cms (PyPI) Vendor— Affected before 5.0.8 Fixed in 5.0.8 Patch available GHSA-8jj7-4v57-frf5
Remediation
- Fix · CNA django-cms (django-cms) Fixed in 5.0.8
- Fix · GHSA-8jj7-4v57-frf5 django-cms (PyPI) Fixed in 5.0.8 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-54623
- 2026-10-03 Alias added: GHSA-8jj7-4v57-frf5
References
Other 5
- https://github.com/django-cms/django-cms/security/advisories/GHSA-8jj7-4v57-frf5
- https://github.com/django-cms/django-cms/pull/8645
- https://github.com/django-cms/django-cms/commit/7642a98ab3170793c0b27b4125dd1f3d318b8a1c
- https://github.com/django-cms/django-cms/releases/tag/5.0.8
- 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-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
- TI-2026-39453 django CMS: Clipboard copy IDOR discloses unauthorized plugin content CVSS 3.1MEDIUM 6.5
Sources
- CVE-2026-54623 · CVE Program
- CVE-2026-54623 · NVD
- FIRST EPSS
- GHSA-8jj7-4v57-frf5 · 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