CVE-2025-34305IPFire是一款开源的Linux防火墙发行版,广泛应用于企业和组织的网络安全防护。2025年10月披露的安全漏洞显示,IPFire 2.29(Core Update 198)之前的所有版本存在多个存储型跨站脚本(Stored XSS)漏洞。该漏洞源于/var/ipfire/header.pl文件中的cleanhtml()函数存在编程缺陷,该函数在处理用户输入时调用了escape()和HTML::Entities::encode_entities()进行HTML实体编码,但未能将编码后的结果正确赋值回输出变量,导致原始未经过滤的用户输入被直接存储到数据库中。当其他用户访问受影响页面时,这些恶意脚本代码会被浏览器解析执行,从而窃取用户会话 cookie、劫持用户账号或进行进一步的内网渗透攻击。攻击者只需拥有低权限账号即可利用此漏洞,且攻击过程对受害者完全透明,具有较高的隐蔽性和危害性。
漏洞根源在于cleanhtml()函数的实现逻辑错误。该函数位于IPFire的核心文件/var/ipfire/header.pl中,负责对用户提交的数据进行HTML净化处理。问题在于代码中虽然调用了escape()和HTML::Entities::encode_entities()方法对特殊字符进行转义,但转义后的返回值并未被重新赋值给原始变量,导致输入数据保持原始状态。攻击者可通过以下受影响的端点注入恶意JavaScript代码:/cgi-bin/wakeonlan.cgi的CLIENT_COMMENT参数、/cgi-bin/dhcp.cgi的ADVOPT_DATA/FIX_REMARK/FIX_FILENAME/FIX_ROOTPATH参数、/cgi-bin/connscheduler.cgi的ACTION_COMMENT参数、/cgi-bin/dnsforward.cgi的REMARK参数、/cgi-bin/vpnmain.cgi的REMARK参数,以及/cgi-bin/dns.cgi的REMARK参数。恶意脚本被存储后,在用户访问相关页面时会被浏览器作为HTML解析执行,成功绕过同源策略限制,可获取用户敏感信息或执行特权操作。