Vulnerability · Published Sep 18, 2026 · Assigned by VulnCheck
CVE-2026-93456django-page-cms through 2.0.13 CSRF via admin mutation views
High 8.2
In plain English
A high-severity cross-site request forgery in django-page-cms from batiste. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.2% (higher than 10% of all known vulnerabilities).
Severity (CVSS 3.1)8.2High
Exploit odds (30 days)0.2%top 89.5% of all CVEs
Exploited in the wildNo reportsCISA SSVC: none
Attack toolingNoneno public tooling known
Official description
django-page-cms through 2.0.13 exempts five admin mutation views from CSRF protection in pages/admin/views.py, allowing attackers to forge requests that modify page content. Signed-in editors visiting a malicious page can be tricked into storing unescaped content that renders to all visitors, enabling stored cross-site scripting attacks.
Affected products (as reported)
| Vendor | Product | Versions |
|---|---|---|
| batiste | django-page-cms | 0 – through 2.0.13 |
Weakness: CWE-352 · Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:H/A:N
References
- GitHub Issue #244 issue-tracking
- https://github.com/batiste/django-page-cms product
- modify_content() is decorated @csrf_exempt, one of five admin mutation views at lines 20, 52, 79, 142 and 182 technical-description
- PlaceholderNode.get_render_content() wraps stored content in mark_safe() before rendering technical-description
- VulnCheck Advisory: django-page-cms through 2.0.13 CSRF via admin mutation views third-party-advisory