CI4MS: Stored XSS in Blog Content via Broken `html_purify` Validation Rule
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| ci4-cms-erp | ci4ms | affected |
|
No data.
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Ci4-cms-erp | Ci4ms |
|
| Source | ID | Title |
|---|---|---|
Github GHSA |
GHSA-2m69-jmvh-6chr | CI4MS: Stored XSS in Blog Content via Broken `html_purify` Validation Rule |
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.175% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Ci4-cms-erp
Ci4-cms-erp ci4ms |
|
| Vendors & Products |
Ci4-cms-erp
Ci4-cms-erp ci4ms |
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| Description | CI4MS is a CodeIgniter 4-based content management system skeleton. Prior to version 0.31.9.0, the custom `html_purify` validation rule used to sanitize blog post bodies relies on by-reference mutation (`?string &$str`), but CodeIgniter 4's validator passes a local copy of the value, so the sanitized text is silently discarded. The Blog controller writes `$lanData['content']` directly into `blog_langs.content`, and the public template echoes it without escaping — yielding stored XSS executable in any visitor's browser, including the superadmin when previewing or editing posts. Version 0.31.9.0 patches the issue. | |
| Title | CI4MS: Stored XSS in Blog Content via Broken `html_purify` Validation Rule | |
| Weaknesses | CWE-79 | |
| References |
| |
| Metrics |
cvssV3_1
|