CVE-2026-93455
django-page-cms through 2.0.13 Unauthorized Content Access via Staff Account
- State
- Published
- Severity
- 7.1 High
- Published
- Sep 18, 2026
- Updated
- Sep 24, 2026
- Reserved
- Sep 17, 2026
Description
django-page-cms through 2.0.13 fails to properly validate page permissions in admin helper views, allowing any staff account to read arbitrary page content and stored media paths. Attackers with low-privilege staff credentials can enumerate content identifiers and access unpublished drafts, page listings, and file paths without proper authorization checks.
Scores
| CVSS | Score | Vector | Source |
|---|---|---|---|
| 4.0 | 7.1 High | CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N | VulnCheck |
| 3.1 | 6.5 Medium | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N | VulnCheck |
Weaknesses
- CWE-862 Missing Authorization
Affected Products
| Product | Versions |
|---|---|
django-page-cmsbatiste |
|
References
- GitHub Issue #244issue-tracking
- https://github.com/batiste/django-page-cmsproduct
- get_content() resolves Content by content_id alone, ignoring page_id, behind @staff_member_required onlytechnical-description
- get_media_url() returns any stored media path by media_id behind @staff_member_required onlytechnical-description
- list_pages_ajax() renders the full page listing behind @staff_member_required with no has_perm('pages.change_page') gate, as do get_last_content (L121), traduction (L156) and sub_menu (L210)technical-description
- VulnCheck Advisory: django-page-cms through 2.0.13 Unauthorized Content Access via Staff Accountthird-party-advisory
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.