CVE-2025-34301CVE-2025-34301是IPFire防火墙产品中的一个存储型跨站脚本(Stored XSS)安全漏洞。该漏洞存在于IPFire 2.29(Core Update 198)之前的版本中,攻击者可以利用此漏洞在Web界面中注入恶意JavaScript代码。具体而言,当用户创建位置组(location group)时,应用程序会通过HTTP POST请求将ACTION参数设置为savelocationgrp,同时COUNTRY_CODE参数的值决定了该位置组显示的国旗图标。攻击者可以在COUNTRY_CODE参数中注入恶意脚本代码,这些代码会被存储在服务器端并在后续被其他用户访问时执行。由于该漏洞是存储型XSS,恶意代码会持久化在系统中,每次有用户访问相关页面时都会触发执行,可能导致会话劫持、敏感信息窃取、钓鱼攻击等严重安全问题。攻击者需要具有低权限的认证账号即可实施攻击,但需要诱导其他用户进行交互操作才能完成完整的攻击链。
该漏洞的根本原因在于IPFire的Web应用程序在处理用户输入时缺乏适当的输入验证和输出编码。具体技术细节如下:1. 漏洞位置:当通过Web界面创建新的位置组时,应用程序会向服务器发送HTTP POST请求,请求中包含ACTION=savelocationgrp和COUNTRY_CODE等参数。2. 数据流程:COUNTRY_CODE参数的值被直接存储到数据库中,用于标识和显示位置组的国旗信息。3. 触发点:当其他用户访问位置组管理页面或相关功能时,存储的COUNTRY_CODE值会被从数据库中取出并直接渲染到HTML页面中。4. 漏洞成因:应用程序在将COUNTRY_CODE值输出到HTML页面时,没有进行适当的HTML转义或编码处理,导致攻击者可以注入任意HTML标签和JavaScript脚本。5. 利用条件:攻击者需要拥有一个有效的低权限用户账号,登录后访问位置组创建功能,在COUNTRY_CODE字段中注入恶意JavaScript代码(如:<script>alert(document.cookie)</script>)。6. 影响范围:由于存储型XSS的特性,恶意代码会在所有访问该页面的用户浏览器中执行,影响范围覆盖所有查看该位置组信息的用户。