CVE-2026-34567
Received Received - Intake
Stored XSS in CI4MS Categories Allows Malicious Script Injection

Publication date: 2026-04-01

Last updated on: 2026-04-06

Assigner: GitHub, Inc.

Description
CI4MS is a CodeIgniter 4-based CMS skeleton that delivers a production-ready, modular architecture with RBAC authorization and theme support. Prior to version 0.31.0.0, the application fails to properly sanitize user-controlled input when creating or editing blog posts within the Categories section. An attacker can inject a malicious JavaScript payload into the Categories content, which is then stored server-side. This stored payload is later rendered unsafely when the Categories are viewed via blog posts, without proper output encoding, leading to stored cross-site scripting (XSS). This issue has been patched in version 0.31.0.0.
CVSS Scores
EPSS Scores
Probability:
Percentile:
Meta Information
Published
2026-04-01
Last Modified
2026-04-06
Generated
2026-05-07
AI Q&A
2026-04-02
EPSS Evaluated
2026-05-05
NVD
Affected Vendors & Products
Showing 1 associated CPE
Vendor Product Version / Range
ci4-cms-erp ci4ms to 0.31.0.0 (exc)
Helpful Resources
Exploitability
CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-79 The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?

The vulnerability exists in CI4MS, a CodeIgniter 4-based CMS skeleton, prior to version 0.31.0.0. It occurs because the application does not properly sanitize user-controlled input when creating or editing blog posts within the Categories section.

An attacker can exploit this by injecting a malicious JavaScript payload into the Categories content. This payload is stored on the server and later rendered unsafely when the Categories are viewed via blog posts, without proper output encoding.

This leads to a stored cross-site scripting (XSS) vulnerability, which can allow attackers to execute malicious scripts in the context of users viewing the affected content.


How can this vulnerability impact me? :

This stored cross-site scripting (XSS) vulnerability can have several impacts:

  • Attackers can execute malicious JavaScript in the browsers of users who view the affected Categories, potentially stealing sensitive information such as cookies or session tokens.
  • It can lead to unauthorized actions performed on behalf of users without their consent.
  • The vulnerability can compromise the integrity and confidentiality of user data.
  • It may also affect availability if the injected scripts disrupt normal application behavior.

What immediate steps should I take to mitigate this vulnerability?

To mitigate this vulnerability, you should upgrade the CI4MS application to version 0.31.0.0 or later, where the issue has been patched.

Additionally, review and sanitize any existing Categories content that may contain malicious JavaScript payloads to prevent stored cross-site scripting (XSS) attacks.


How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:

The vulnerability allows an attacker to inject malicious JavaScript payloads via stored cross-site scripting (XSS) in the Categories section of the CI4MS CMS. This can lead to unauthorized access, data manipulation, or data leakage.

Such security weaknesses can impact compliance with common standards and regulations like GDPR and HIPAA, which require protection of personal data and secure handling of user inputs to prevent unauthorized access or data breaches.

Failure to properly sanitize and encode user input, as seen in this vulnerability, may result in violations of these regulations due to potential exposure of sensitive information or compromise of system integrity.


How can this vulnerability be detected on my network or system? Can you suggest some commands?

This vulnerability can be detected by testing the blog post Categories creation and editing interfaces for stored cross-site scripting (XSS) payload injection. Specifically, you can attempt to inject a JavaScript payload such as `<img src=x onerror=alert(document.domain)>` into the Category name or description fields via the endpoint /backend/blogs/create.

After injecting the payload, you should verify if the payload executes when viewing the Categories either in the administrative backend (/backend/blogs/) or on public blog posts (/blog/{id}). Successful execution indicates the presence of the vulnerability.

For automated detection, you can use web vulnerability scanners that support stored XSS detection targeting these endpoints.

Example manual commands using curl to test injection might be:

  • curl -X POST -d "category_name=<img src=x onerror=alert(document.domain)>" https://yourdomain.com/backend/blogs/create
  • curl https://yourdomain.com/backend/blogs/ # To check if the payload is reflected in the Categories listing
  • curl https://yourdomain.com/blog/{id} # To check if the payload executes in blog post rendering

Note that these commands require appropriate authentication and permissions since the vulnerability requires low privileges but not anonymous access.


Ask Our AI Assistant
Need more information? Ask your question to get an AI reply (Powered by our expertise)
0/70
EPSS Chart