CVE-2026-22704
Stored XSS in HAX CMS Allows Account Takeover
Publication date: 2026-01-10
Last updated on: 2026-02-05
Assigner: GitHub, Inc.
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| haxtheweb | haxcms-php | From 11.0.6 (inc) to 25.0.0 (exc) |
| haxtheweb | haxcms-nodejs | 25.0.0 |
| psu | haxcms-nodejs | 11.0.6 |
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
How can this vulnerability impact me? :
This vulnerability can lead to a full account takeover of administrator accounts in HAX CMS. An attacker with low privileges can trick an administrator into executing malicious scripts, which then steal the administrator's access token. With this token, the attacker gains complete administrative access, compromising confidentiality, integrity, and availability of the system. [1]
Can you explain this vulnerability to me?
CVE-2026-22704 is a stored Cross-Site Scripting (XSS) vulnerability in HAX CMS versions 11.0.6 to before 25.0.0. An attacker can upload a malicious HTML file containing JavaScript to the application. When an administrator visits this file, the script executes and steals the administrator's JWT access token by exploiting the refresh token mechanism. This allows the attacker to take over the administrator's account and gain full control over the application. The vulnerability is due to improper neutralization of user input, allowing malicious scripts to be stored and executed in other users' contexts. [1]
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 HTML files uploaded to the application, specifically files like 'pwn1116.html' containing JavaScript payloads. A proof-of-concept involves sending a POST request to the '/system/api/saveFile' endpoint with a multipart/form-data payload to upload such a file. To detect exploitation attempts, monitor for POST requests to '/system/api/saveFile' and look for unusual file uploads containing scripts. Additionally, inspect network traffic for fetch requests to '/system/api/refreshAccessToken' that include the 'haxcms_refresh_token' cookie. Example commands to detect suspicious files or requests could include: 1) Using curl or similar tools to check for uploaded files: `curl -X POST -F '[email protected]' https://your-haxcms-instance/system/api/saveFile` (to test upload). 2) Using web server logs or intrusion detection systems to search for POST requests to '/system/api/saveFile' or fetch requests to '/system/api/refreshAccessToken'. 3) Using grep or similar tools to scan uploaded files for suspicious JavaScript payloads. However, no specific detection commands are provided in the resources. [1]
What immediate steps should I take to mitigate this vulnerability?
The immediate step to mitigate this vulnerability is to upgrade HAX CMS to version 25.0.0 or later, where the vulnerability has been patched. This update fixes the stored XSS issue that leads to account takeover. Until the upgrade is applied, restrict file uploads and monitor for suspicious activity related to the '/system/api/saveFile' and '/system/api/refreshAccessToken' endpoints to reduce risk. [1, 2]
How does this vulnerability affect compliance with common standards and regulations (like GDPR, HIPAA)?:
The vulnerability allows attackers to perform account takeover by stealing administrator JWT tokens through stored XSS, leading to unauthorized access and control over sensitive data. This could result in violations of data protection regulations such as GDPR and HIPAA, which require safeguarding personal and sensitive information against unauthorized access. Therefore, the vulnerability poses a significant risk to compliance with these standards by compromising confidentiality, integrity, and availability of data. [1]