Skip to content
OpenAdvisories
Medium · 5.4 CVE-2026-45138 EUVD-2026-45875GHSA-2m69-jmvh-6chr

CI4MS: Stored XSS in Blog Content via Broken `html_purify` Validation Rule

Published Jul 19, 2026 · Updated Jul 20, 2026 · Assigned by GitHub_M

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.

Affected products

VendorProductAffectedFixed
ci4-cms-erp ci4ms < 0.31.9.0 —

Affected packages

EcosystemPackageAffectedFixedRecord
Packagist ci4-cms-erp/ci4ms < 0.31.9.0 0.31.9.0 GHSA-2m69-jmvh-6chr

References