CVE-2025-68951phpMyFAQ是一款开源的FAQ(常见问题解答)Web应用程序。在4.0.14和4.0.15版本中,存在一个严重的存储型跨站脚本(Stored XSS)漏洞。该漏洞允许未经认证的攻击者通过注册账户时在显示名称中嵌入恶意HTML实体来触发漏洞。当具有管理员权限的用户访问管理后台的用户列表时,这些恶意payload会在服务器端被解码并直接渲染到页面上,而没有进行适当的安全转义处理。这导致攻击者能够在管理员的浏览器上下文中执行任意JavaScript代码,从而可能窃取管理员会话、篡改后台数据或执行其他恶意操作。漏洞的利用无需特殊权限,普通用户即可发起攻击,但需要管理员访问管理界面才能触发payload执行。该漏洞已在4.0.16版本中得到修复。
该存储型XSS漏洞源于phpMyFAQ在处理用户显示名称时的不当输入验证。具体来说,当用户注册账户时,系统允许在display name字段中包含HTML实体编码的恶意脚本。问题出在管理后台的用户列表展示逻辑中,服务器端在将数据显示给管理员之前进行了HTML解码操作,但解码后直接输出而未进行任何转义或安全过滤。例如,攻击者可以注册一个包含如<img src=x onerror=alert(document.cookie)>的用户名,该payload被存储时可能经过HTML编码,但当管理员查看用户列表时,服务器解码后直接输出到HTML页面中,导致JavaScript代码在管理员浏览器中执行。这种攻击方式特别危险,因为存储型XSS的payload会持久存在于数据库中,所有访问该页面的管理员都会受到影响。攻击者可以利用此漏洞获取管理员权限、窃取敏感信息或进行进一步的内网渗透。