CVE-2026-34559
Stored XSS in CI4MS Blog Tag Input Allows Remote Attack
Publication date: 2026-04-01
Last updated on: 2026-04-13
Assigner: GitHub, Inc.
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| ci4-cms-erp | ci4ms | to 0.31.0.0 (exc) |
Helpful Resources
Exploitability
| 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?
This vulnerability exists in CI4MS, a CodeIgniter 4-based CMS skeleton, prior to version 0.31.0.0. The application does not properly sanitize user-controlled input when creating or editing blog tags. Specifically, an attacker can inject malicious JavaScript code into the tag name field. This malicious code is stored on the server and later rendered unsafely on public tag pages and administrative interfaces without proper output encoding, resulting in stored cross-site scripting (XSS).
How can this vulnerability impact me? :
The vulnerability can have serious impacts including allowing attackers to execute arbitrary JavaScript in the context of users viewing the affected pages. This can lead to theft of sensitive information such as cookies or session tokens, unauthorized actions performed on behalf of users, and potential compromise of administrative interfaces. The CVSS score of 9.1 indicates a high severity with network attack vector, low attack complexity, and significant impact on confidentiality, integrity, and availability.
What immediate steps should I take to mitigate this vulnerability?
To mitigate this vulnerability, you should upgrade CI4MS to version 0.31.0.0 or later, where the issue has been patched.
Additionally, avoid using or accepting user input for blog tag names without proper sanitization and output encoding to prevent stored cross-site scripting (XSS).
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:
The vulnerability in CI4MS allows an attacker to inject malicious JavaScript payloads via stored cross-site scripting (XSS). This can lead to unauthorized access, data manipulation, or exposure of sensitive information.
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 data breaches and unauthorized access.
Failure to properly sanitize and encode user input, as seen in this vulnerability, may result in violations of these regulations due to potential data exposure or compromise.
How can this vulnerability be detected on my network or system? Can you suggest some commands?
This vulnerability can be detected by checking for the presence of malicious JavaScript payloads injected into the blog tag name fields within the application, especially in versions up to 0.28.6.0 of ci4ms.
One approach is to inspect the blog tag creation and editing endpoints, such as `/backend/blogs/tags/` and public blog tag pages `/blog/{id}`, for stored XSS payloads like `<img src=x onerror=alert(document.domain)>` or other suspicious scripts.
Commands to detect this vulnerability could include:
- Using curl or wget to fetch the blog tag pages and searching for suspicious script tags or event handlers in the tag names, for example: `curl -s https://yourdomain.com/blog/1 | grep -i '<script\|onerror\|onload'`
- Querying the database directly to look for suspicious payloads in the tag name fields, for example using SQL: `SELECT id, tag_name FROM blog_tags WHERE tag_name LIKE '%<script%' OR tag_name LIKE '%onerror%' OR tag_name LIKE '%onload%';`
- Using automated web vulnerability scanners that detect stored XSS vulnerabilities by submitting payloads to the blog tag creation/edit forms and analyzing responses.
Additionally, monitoring HTTP traffic for suspicious payloads being submitted to the blog tag endpoints can help detect exploitation attempts.