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.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-79"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/45xxx/CVE-2026-45138.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "0.31.9.0"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"original_tag": "0.31.9.0",
"range": [
{
"fixed": "e1aad282cf9ae5395bdce7c7f75f8a9803cee75b"
}
],
"source": "REFERENCES_TAG"
},
{
"range": [
{
"introduced": "0"
},
{
"fixed": "0.31.9.0"
}
],
"source": "DESCRIPTION"
}
]
}