CVE-2025-66469NiceGUI是一个基于Python的UI框架,提供现代化的Web用户界面开发能力。该框架的ui.add_css、ui.add_scss和ui.add_sass函数存在反射型跨站脚本(XSS)漏洞,存在于3.3.1及以下版本中。攻击者可以通过这些函数注入恶意代码,利用框架在生成CSS和JavaScript内容时缺少适当的输入清理和输出编码的缺陷,成功突破预期的<style>或<script>标签上下文,进而在受害者浏览器中执行任意JavaScript代码。由于该漏洞需要用户交互触发,攻击者通常需要诱导用户访问包含恶意代码的页面或点击特定链接。虽然漏洞的机密性和完整性影响等级为低,但在特定场景下可能被用于窃取用户会话、劫持账户或进行钓鱼攻击。此问题已在版本3.4.0中得到修复。
漏洞根源在于NiceGUI框架的ui.add_css()、ui.add_scss()和ui.add_sass()函数在处理用户提供的CSS/SCSS/SASS样式内容时,直接将输入内容嵌入到生成的HTML响应中,而未进行充分的HTML实体编码或标签过滤。当用户通过这些函数提交包含</style>或</script>等HTML闭合标签的内容时,攻击者可以提前闭合框架生成的<style>或<script>标签,然后注入任意的<script>标签或HTML内容。由于浏览器会解析这些被注入的标签并执行其中的JavaScript代码,攻击者即可实现存储型或反射型XSS攻击。具体利用方式为:攻击者构造包含闭合标签和恶意JavaScript代码的payload,例如通过ui.add_css注入</style><script>alert(document.cookie)</script>,当其他用户访问包含此内容的页面时,恶意脚本将在其浏览器上下文中执行。修复方案在3.4.0版本中对这些函数增加了适当的输出编码,确保用户输入的CSS内容被正确转义,不会破坏周围的HTML结构。