Description
CI4MS is a CodeIgniter 4-based content management system skeleton. Prior to version 0.31.9.0, the `Pages` backend module registers the `html_purify` validation rule on language-keyed page content but persists the raw, un-purified POST value into the database. The public renderer for pages (`Home::index()` → `app/Views/templates/default/pages.php`) emits `$pageInfo->content` without `esc()`, yielding stored XSS that fires for every public visitor of the affected page — including administrators. Because pages may be promoted to the site home page, the payload can be served at `/` and reach every visitor of the site. Version 0.31.9.0 patches the issue.
Published: 2026-07-20
Score: 8.7 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

CI4MS is a CodeIgniter 4-based content management system skeleton that suffered a stored XSS flaw. Prior to version 0.31.9.0 the Pages backend module registers an html_purify validation rule for language‑keyed page content but mistakenly stores the raw, un‑purified POST value in the database. The public page renderer emits $pageInfo->content without escaping, allowing an authenticated user to inject arbitrary scripts that are executed for every public visitor—including administrators—when the page is viewed. Because affected pages can be promoted as the site home page, a malicious payload can be served at the root path "/", exposing all site visitors to the impact.

Affected Systems

The issue appears in the CI4MS content management system, specifically its Pages backend module, when running any version prior to 0.31.9.0. All deployments of CI4MS completing 0.31.9.0 or later are unaffected.

Risk and Exploitability

This vulnerability has a CVSS score of 8.7, indicating high severity. Because the likely attack vector requires the attacker to first access the administrative area to insert malicious content, it is not fully remote. The EPSS score is reported as < 1%, indicating a very low but non‑zero probability that the vulnerability is exploited in the wild. The vulnerability is not yet listed in the CISA KEV catalog. Once an attacker injects harmful code, every subsequent visitor of the compromised page will be exposed to the impact, including administrators who may use the site’s home page as a front door. The risk is elevated for sites that use promoted pages as the site home page.

Generated by OpenCVE AI on July 30, 2026 at 19:25 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update to CI4MS 0.31.9.0 or a newer release that sanitizes page content before storage.
  • As a stop‑gap, modify the page rendering template to escape $pageInfo->content with esc() or a similar function so that any stored script is neutralized before output.
  • Enforce strict role‑based access controls for the Pages module and ensure only trusted users can edit page content, reducing the likelihood that an attacker can inject malicious payloads.

Generated by OpenCVE AI on July 30, 2026 at 19:25 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-gqr2-7hcg-rchf CI4MS: Stored XSS in Pages Module Content via Broken html_purify Validation Rule
History

Tue, 21 Jul 2026 00:15:00 +0000

Type Values Removed Values Added
First Time appeared Ci4-cms-erp
Ci4-cms-erp ci4ms
Vendors & Products Ci4-cms-erp
Ci4-cms-erp ci4ms

Mon, 20 Jul 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 20 Jul 2026 14:45:00 +0000

Type Values Removed Values Added
Description CI4MS is a CodeIgniter 4-based content management system skeleton. Prior to version 0.31.9.0, the `Pages` backend module registers the `html_purify` validation rule on language-keyed page content but persists the raw, un-purified POST value into the database. The public renderer for pages (`Home::index()` → `app/Views/templates/default/pages.php`) emits `$pageInfo->content` without `esc()`, yielding stored XSS that fires for every public visitor of the affected page — including administrators. Because pages may be promoted to the site home page, the payload can be served at `/` and reach every visitor of the site. Version 0.31.9.0 patches the issue.
Title CI4MS: Stored XSS in Pages Module Content via Broken html_purify Validation Rule
Weaknesses CWE-79
References
Metrics cvssV3_1

{'score': 8.7, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N'}


Subscriptions

Ci4-cms-erp Ci4ms
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-07-20T15:11:27.452Z

Reserved: 2026-05-11T18:41:13.156Z

Link: CVE-2026-45270

cve-icon Vulnrichment

Updated: 2026-07-20T15:11:22.696Z

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-07-30T19:30:09Z

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')