Skip to main content
← All vulnerabilities
CVE-2026-45138GHSA-2M69-JMVH-6CHR

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

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 0.31.9.0
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: poc
  • Automatable: no
  • Technical impact: partial

Summary

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.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: poc · Automatable: no · Technical impact: partial

  3. Record last updated

Affected versions

  • ci4-cms-erp ci4ms

    fixed in 0.31.9.0

  • ci4-cms-erp/ci4msPackagist

    fixed in 0.31.9.0

References 2

GitHub · ci4-cms-erp/ci4ms