HAXcms Cross-Tenant Account Takeover via Stored XSS and Token Exposure
HAXcms is vulnerable to stored XSS and exposes authentication tokens in the `/system/api/connectionSettings` endpoint, allowing an attacker to perform cross-tenant account takeover by injecting malicious JavaScript to steal the `jwt`, `user_token`, `site_token`, and `appstore_token`.
HAXcms is vulnerable to a critical account takeover vulnerability stemming from a combination of stored XSS and insecure token handling. The vulnerability, present in versions 25.0.0 and earlier, allows an authenticated attacker to inject malicious JavaScript code into a page that, when viewed by another user, exfiltrates that user’s authentication tokens. The /system/api/connectionSettings endpoint dynamically leaks sensitive tokens into a global JavaScript variable (window.appSettings), which can be accessed and stolen via XSS. This vulnerability allows for complete cross-tenant account hijacking, enabling attackers to perform administrative actions without needing the victim’s password.
Attack Chain
- Attacker authenticates to the HAXcms application with valid credentials.
- Attacker injects malicious JavaScript code via a stored XSS vulnerability, such as within an iframe’s
srcdocor through a<video-player>tag, on a page they have write access to. - The victim user views the compromised page.
- The injected JavaScript executes in the victim’s browser context.
- The JavaScript fetches the victim’s connection settings via
fetch('/<username>/system/api/connectionSettings'), which includes the victim’s valid JWT and tokens. - The JavaScript parses the
jwt,user_token,site_token, andappstore_tokenfrom the response. - The JavaScript encodes the stolen tokens (including
jwt,user_token,site_token, andappstore_token) using Base64 encoding. - The JavaScript exfiltrates the encoded tokens to an attacker-controlled webhook using an image request to bypass CORS. The attacker now has the ability to impersonate the victim and perform administrative actions.
Impact
This vulnerability allows for complete account hijacking. An attacker who successfully exploits this vulnerability can impersonate a victim user without needing their password. This gives the attacker the ability to perform malicious administrative actions, such as creating or deleting sites, modifying user access, and uploading malicious content. The reliance on window.appSettings for storing long-lived administrative tokens creates a critical vulnerability when combined with XSS.
Recommendation
- Deploy the Sigma rule
Detect HAXcms Connection Settings Requestto detect requests to the/system/api/connectionSettingsendpoint from unusual sources, and tune for your environment. - Deploy the Sigma rule
Detect HAXcms Token Exfiltration via Webhookto detect attempts to exfiltrate the tokens to external webhooks. - Ensure that all HAXcms instances are updated to a patched version that addresses this vulnerability to prevent CVE-2026-46511 exploitation.
Detection coverage 2
Detect HAXcms Connection Settings Request
mediumDetects requests to the `/system/api/connectionSettings` endpoint, potentially indicating an attempt to steal authentication tokens.
Detect HAXcms Token Exfiltration via Webhook
highDetects attempts to exfiltrate HAXcms tokens to external webhooks, indicating potential account takeover.
Detection queries are available on the platform. Get full rules →