
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-54624 is a missing authorization vulnerability in django CMS (also classified as CWE-285 Improper Authorization) that allows any staff user to access the plugin structure of view-restricted pages via the structure-board endpoint. The vulnerability affects django CMS versions prior to 5.0.8 and was published on August 20, 2026. It was originally reported by the security team at the University of Sydney and disclosed via GitHub Security Advisory GHSA-vgxm-h9gx-h9w7. The CVSS v3.1 base score is 6.5 (Medium) (GitHub Advisory, Feedly).
The root cause is that render_object_structure in cms/views.py renders cms/toolbar/structure.html for a PageContent object without invoking user_can_view_page(), the authorization check used by the edit and preview endpoints (classified as CWE-862: Missing Authorization and CWE-285: Improper Authorization). While render_object_endpoint (used by edit/preview) routes through render_pagecontent → render_page and calls user_can_view_page(request.user, page) — returning HTTP 404 when access is denied — the structure endpoint performs no equivalent page-level authorization check. The fix, introduced in commit 7642a98, adds a call to user_can_view_page() in render_object_structure and raises Http404 when the check fails, aligning it with the behavior of the other endpoints. This vulnerability only applies when CMS_PERMISSION=True and the page has view restrictions, or when CMS_PUBLIC_FOR='staff' is configured (GitHub Advisory, Fix Commit).
A staff user (any account with is_staff=True) who lacks view permission on a view-restricted page can retrieve that page's full plugin structure and short descriptions by directly requesting the structure endpoint with the page's content-type ID and object ID. The response exposes plugin get_short_description() values, which can include link names, URLs, and text snippets — meaning actual page content is disclosed, not merely the structural layout. This is a confidentiality-only impact (no integrity or availability impact), scoped to sites using CMS_PERMISSION=True with per-page view restrictions or CMS_PUBLIC_FOR='staff'; sites without these configurations are not affected (GitHub Advisory).
No public exploit code or in-the-wild exploitation has been reported for this vulnerability. The NVD SSVC assessment indicates exploitation is "none" and the vulnerability is not automatable, as it requires a valid staff account. The EPSS score is 0.0, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Exploitation requires an authenticated staff user account, limiting the attack surface to insider threats or compromised staff credentials (Feedly, GitHub Advisory).
is_staff=True) that does not have view permission on the target restricted page. This could be a low-privileged staff account with no specific page permissions assigned.PageContent objects. The content-type ID for cms.pagecontent can be retrieved from the Django admin or by querying the django_content_type table./en/admin/cms/placeholder/render-object-structure/<content_type_id>/<object_id>/, substituting the target page's content-type and object IDs.cms/toolbar/structure.html page, which includes each plugin's get_short_description() output — exposing link names, URLs, text snippets, and other plugin content from the view-restricted page without triggering a 404 (GitHub Advisory, Fix Commit)./en/admin/cms/placeholder/render-object-structure/<content_type_id>/<object_id>/) from staff accounts that do not have view permissions on the corresponding pages.cms_placeholder_render_object_structure URL pattern by staff users, particularly for page object IDs they are not authorized to view; absence of corresponding 404 responses in pre-patch versions.CMS_PERMISSION=True and per-page view restrictions configured (GitHub Advisory).Upgrade django CMS to version 5.0.8 or later, which enforces user_can_view_page() on the structure endpoint, matching the behavior of the edit and preview endpoints (Release 5.0.8). The fix was merged via pull request #8645 and commit 7642a98. No configuration-based workaround exists other than restricting staff access entirely; the vendor explicitly recommends upgrading as the only effective remediation (GitHub Advisory). Sites not using CMS_PERMISSION=True with per-page view restrictions, or not setting CMS_PUBLIC_FOR='staff', are not affected by this vulnerability.
The vulnerability was reported by the security team at the University of Sydney and credited to researchers Zyy0530, Str1ckl4nd, 7thParkk, and analyst mauriceng98 (GitHub Advisory). The fix was developed and merged by django CMS maintainer fsbraun. No significant broader media coverage or notable community discussion beyond the GitHub advisory and standard vulnerability tracking feeds has been observed.
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."