CVE-2025-14580
Executive Summary
CVE-2025-14580 is a reflected Cross-Site Scripting (XSS) vulnerability in Qualitor versions up to 8.24.73. The flaw exists in the /Qualitor/html/bc/bcdocumento9/biblioteca/request/viewDocumento.php file, where the cdscript parameter is insufficiently sanitized, allowing an attacker to inject arbitrary JavaScript. With a CVSS score of 3.5 (Low), the vulnerability requires user interaction but can be exploited remotely without authentication. The vendor has acknowledged the issue and provided a fix to customers, but no public patch details are available. Public exploit code has been disclosed, increasing the risk of active exploitation.
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
Supply Chain & Package Security
This vulnerability is not related to NPM, PyPI, Go, or Ruby packages. It affects the Qualitor web application, which is a proprietary PHP-based system. No open-source package or supply chain component is involved.
CVSS Breakdown & Threat Level
- CVSS Score: 3.5 (Low)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
- Attack Vector: Network (AV:N)
- Attack Complexity: Low (AC:L)
- Privileges Required: None (PR:N)
- User Interaction: Required (UI:R)
- Scope: Unchanged (S:U)
- Confidentiality Impact: None (C:N)
- Integrity Impact: Low (I:L)
- Availability Impact: None (A:N)
Threat Level: Low. The vulnerability requires user interaction (e.g., clicking a crafted link) and only allows limited integrity impact (e.g., defacement or session hijacking). However, the public availability of exploit code and the lack of a public patch elevate the urgency for affected organizations.
Deep Dive & Mechanics
The vulnerability is a classic reflected XSS in the viewDocumento.php script. The cdscript parameter is echoed back into the response without proper encoding or sanitization. An attacker can craft a URL like:
https://target/Qualitor/html/bc/bcdocumento9/biblioteca/request/viewDocumento.php?cdscript=<script>alert('XSS')</script>
When a victim visits this URL, the injected script executes in the context of the Qualitor application, potentially allowing the attacker to steal session cookies, perform actions on behalf of the user, or deface the page.
The root cause is the lack of output encoding for user-supplied input. The fix likely involves escaping HTML entities or using a Content Security Policy (CSP) to mitigate script execution.
Vulnerable vs. Patched Code
Vulnerable Code (conceptual):
<?php
$cdscript = $_GET['cdscript'];
echo "<script>var script = '$cdscript';</script>";
?>
Patched Code (conceptual):
<?php
$cdscript = htmlspecialchars($_GET['cdscript'], ENT_QUOTES, 'UTF-8');
echo "<script>var script = '$cdscript';</script>";
?>
The patched version uses htmlspecialchars() to encode special characters, preventing script injection.
Exploitation & Lab Setup
Red Team
Prerequisites:
- A vulnerable Qualitor instance (<= 8.24.73)
- A web browser or tool like
curl
Exploitation Steps:
- Identify a target running Qualitor.
- Craft a malicious URL:
http://target/Qualitor/html/bc/bcdocumento9/biblioteca/request/viewDocumento.php?cdscript=<script>alert(document.cookie)</script> - Send the link to a victim (e.g., via email or social engineering).
- When the victim clicks the link, the script executes, and the attacker can capture cookies or perform other actions.
Example with curl:
curl "http://target/Qualitor/html/bc/bcdocumento9/biblioteca/request/viewDocumento.php?cdscript=<script>alert('XSS')</script>"
Blue Team
Detection:
- Monitor web server logs for requests to
/Qualitor/html/bc/bcdocumento9/biblioteca/request/viewDocumento.phpwith suspiciouscdscriptparameters containing<script>tags or encoded variants. - Use the Sigma rule below to detect exploitation attempts.
Mitigation:
- Apply the vendor-provided patch immediately.
- If patching is not possible, implement a Web Application Firewall (WAF) rule to block requests with malicious
cdscriptparameters. - Restrict access to the vulnerable endpoint using network segmentation.
Indicators of Compromise (IOCs)
- URL Pattern:
*/Qualitor/html/bc/bcdocumento9/biblioteca/request/viewDocumento.php?cdscript=* - Log Entries: HTTP GET requests to the above URL with
cdscriptcontaining<script>,onerror,onload, or other XSS payloads. - Network Traffic: Outbound connections from the victim's browser to attacker-controlled domains (if the payload exfiltrates data).
Detection Engineering
YARA Rule
rule CVE_2025_14580_XSS {
meta:
description = "Detects exploitation attempts for CVE-2025-14580 reflected XSS in Qualitor"
author = "Valters IT"
date = "2025-04-10"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2025-14580"
strings:
$url_pattern = "/Qualitor/html/bc/bcdocumento9/biblioteca/request/viewDocumento.php"
$xss_payload = /cdscript=.*(<script|<img|onerror|onload|alert|prompt|confirm)/
condition:
$url_pattern and $xss_payload
}
Sigma Rule
title: CVE-2025-14580 Qualitor Reflected XSS
id: 8a9b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects HTTP requests targeting the vulnerable endpoint with XSS payloads
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'GET'
cs-uri-query|contains: '/Qualitor/html/bc/bcdocumento9/biblioteca/request/viewDocumento.php'
cs-uri-query|contains|all:
- 'cdscript='
- '<script'
condition: selection
falsepositives:
- Legitimate use of script tags in parameter (unlikely)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-14580 Qualitor Reflected XSS Attempt"; flow:to_server,established; content:"GET"; http_method; content:"/Qualitor/html/bc/bcdocumento9/biblioteca/request/viewDocumento.php"; http_uri; content:"cdscript="; http_uri; pcre:"/cdscript=.*(<script|<img|onerror|onload|alert|prompt|confirm)/Ui"; classtype:web-application-attack; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate Action: Apply the vendor-provided patch. Contact Qualitor support for the updated version.
- Workaround: If patching is delayed, implement a WAF rule to block requests containing
cdscriptwith HTML/JavaScript payloads. - Long-term: Enforce output encoding for all user-supplied data. Implement Content Security Policy (CSP) headers to mitigate XSS.
- Monitoring: Deploy the detection rules above to identify exploitation attempts.
- User Awareness: Train users not to click suspicious links, especially those containing the vulnerable URL pattern.
Valters IT