{"id":"CVE-2026-34566","aliases":["GHSA-458r-h248-29c5"],"url":"https://o3.security/vulnerability/CVE-2026-34566","summary":"CI4MS: Pages Management Full Account Takeover for All-Roles & Privilege-Escalation via Stored DOM XSS","details":"## Summary\n### **Vulnerability: Stored DOM XSS via Page Management Fields (Persistent Payload Injection)**\n- Stored Cross-Site Scripting via Unsanitized Page Creation and Editing Inputs\n\n### Description\nThe application fails to properly sanitize user-controlled input within the **Page Management** functionality when creating or editing pages. Multiple input fields accept attacker-controlled JavaScript payloads that are stored server-side.\n\nThese stored values are later rendered without proper output encoding across administrative page lists and public-facing page views, leading to stored DOM-based cross-site scripting (XSS).\n\n### Affected Functionality\n- Page creation functionality\n- Page editing functionality\n- Page list and management views\n- Public-facing page rendering\n- Storage and retrieval of page-related data\n\n### Affected Fields\n- Title\n- URL\n- Content\n- Cover Image\n- Image URL\n- Image Width\n- Image Height\n- SEO Description\n- SEO Keywords\n\n### Attack Scenario\n- An attacker creates or edits a page and injects a malicious XSS payload into one or more page-related input fields.\n- The application stores these values without sanitization or encoding.\n- The payload is rendered in administrative page lists and public-facing page views.\n- The payload executes automatically in the browser context of administrators, authenticated users, and unauthenticated visitors.\n\n### Impact\n- Persistent Stored XSS\n- Execution of arbitrary JavaScript in victims’ browsers\n- Privilege escalation when viewed by administrators or privileged users\n- Full administrator account takeover\n- Full account takeover across all roles\n- Full compromise of the entire application\n\nEndpoints:\n- `/backend/pages/create`\n- Page list management view\n- Public-facing page views\n\n## Steps To Reproduce (POC)\n1. Navigate to the Page Management -> Add Page interface\n2. Insert an XSS payload into any page-related field such as:\n`<img src=x onerror=alert(document.domain)>`\n3. Save or publish the page\n4. View the page via the administrative page list or public-facing page\n5. Observe the XSS payload executing automatically\n\n## Remediation\n\n- **Avoid unsafe DOM manipulation methods:** Do not use `.html()`, `innerHTML`, or similar sink functions in client-side JavaScript or server-side templating (e.g., PHP). Even when user input flowing into these sinks is not immediately apparent, they can introduce Cross-Site Scripting (XSS) vulnerabilities that an attacker may exploit.\n\n- **Apply output encoding:** Implement HTML entity encoding on all user-controlled data before rendering it in the browser. This helps neutralize potentially malicious input.\n\n- **Implement input sanitization:** Ensure that all user-supplied input is properly sanitized before processing or output. Currently, no sanitization mechanisms are in place, which should be addressed as a priority.\n\n- **Enforce security headers and cookie attributes:**\n  - **Content Security Policy (CSP):** Define and enforce a strict CSP to limit the execution of unauthorized scripts.\n  - **HttpOnly flag:** Set the `HttpOnly` attribute on session cookies to prevent client-side script access.\n  - **SameSite attribute:** Configure the `SameSite` cookie attribute to mitigate Cross-Site Request Forgery (CSRF) risks.\n  - **Secure flag:** Ensure all cookies are transmitted only over HTTPS by enabling the `Secure` attribute.\n\n  These measures collectively reduce the impact of XSS and help prevent escalation paths such as CSRF via XSS.\n\n# Ready Video POC:\nhttps://mega.nz/file/iAkWAKQY#hCUv4DlMPFykPvb4gO94ZVGj64tpUk99gLxE6u1kASk","published":"2026-04-01T21:27:01.492Z","modified":"2026-08-12T03:51:33.792303425Z","cvss":{"score":9.1,"severity":"CRITICAL","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:L"},"epss":null,"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"Packagist","name":"ci4-cms-erp/ci4ms","fixedVersion":"0.31.0.0"}],"fix":null,"references":[{"type":"WEB","url":"https://github.com/ci4-cms-erp/ci4ms/releases/tag/0.31.0.0"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/34xxx/CVE-2026-34566.json"},{"type":"ADVISORY","url":"https://github.com/ci4-cms-erp/ci4ms/security/advisories/GHSA-458r-h248-29c5"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-34566"},{"type":"PACKAGE","url":"https://github.com/ci4-cms-erp/ci4ms"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-08-12T03:51:33.792303425Z"}}