Safeguard
Vulnerability Analysis•

CVE-2026-34562: Stored XSS in Company Settings in CI4MS

CVE-2026-34562 is a medium stored XSS in CI4MS company settings fields, set by admins. Upgrade ci4ms to 0.31.0.0 or later and review the stored values.

Safeguard Security Team
3 min read

CVE-2026-34562 is a medium stored cross-site scripting flaw in CI4MS, a CodeIgniter 4 based CMS. NVD scores it 4.7. Several administrative configuration fields under System Settings, Company Information accept input that is stored and later rendered without output encoding. Upgrade to ci4ms 0.31.0.0 or later.

What's affected

CI4MS (ci4-cms-erp ci4ms) versions before 0.31.0.0. The fixed release is 0.31.0.0.

Any site running an older build with the affected feature reachable to a signed in user is in scope.

How to check if you're exposed

Find the ci4ms version your site runs. If you deployed from a git checkout, git describe --tags in the project folder shows the nearest release tag. Otherwise look at the release or commit you installed from.

Anything older than 0.31.0.0 is in scope. The record names no workaround, so the version number is the test. The advisory linked under Sources lists the exact affected range.

What to do now

  1. Upgrade ci4ms to 0.31.0.0 or later and redeploy.
  2. Until you can, limit who holds accounts that can edit system settings, and review those accounts.
  3. Look through existing company information fields for entries that contain script tags or event handler attributes, and clean them.
  4. Sign out active sessions for administrators after the upgrade.

Why it matters

The weakness class is CWE-79, cross-site scripting. The affected fields sit in the System Settings, Company Information screen. Because they are administrative fields, the vector requires high privileges, which is why the score is lower than its siblings.

Stored XSS is worse than the reflected kind because the script waits in the database and runs for every person who later opens the page. The CVSS vector has Scope Changed, which reflects that the script runs in the browser of someone else, often an administrator. The usual fix is output encoding on every place the stored value is rendered, plus input validation.

The record does not flag this CVE as listed in CISA's Known Exploited Vulnerabilities catalog, and the advisory I read does not say it is exploited.

Quick check

Why is this one only medium when the other CI4MS bugs are critical?

NVD's vector needs high privileges, so only an administrator level account can set the values. Most of the other CI4MS issues in this batch are reachable by lower privileged roles. Patch it anyway, because a stolen admin account is a common starting point.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.