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.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| batiste | django-page-cms | ≤ 2.0.13 | — |
References
- GitHub Issue #244 issue-tracking
- https://github.com/batiste/django-page-cms product
- get_content() resolves Content by content_id alone, ignoring page_id, behind @staff_member_required only technical-description
- get_media_url() returns any stored media path by media_id behind @staff_member_required only technical-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 Account third-party-advisory