CVE-2025-53354CVE-2025-53354是NiceGUI(一个基于Python的UI框架)中存在的跨站脚本(Cross-Site Scripting, XSS)漏洞。该漏洞影响NiceGUI 2.24.2及以下版本,当开发人员使用ui.html()组件将未转义的用户输入直接渲染到DOM时,攻击者可以利用此漏洞在受害者的浏览器中执行任意JavaScript代码。NiceGUI框架本身未对通过ui.html()传入的内容执行HTML或JavaScript清理/转义操作,这使得直接将ui.input()与ui.html()组合使用,或将未转义的用户输入传入ui.chat_message等组件的HTML内容的应用程序面临XSS攻击风险。该漏洞的CVSS 3.1评分为6.1分,属于中危级别,攻击向量为网络(AV:N),无需认证(PR:N),但需要用户交互(UI:R),机密性和完整性影响均为低(C:L/I:L),可用性影响为无(A:N)。该漏洞已于NiceGUI 3.0.0版本中修复,开发者通过升级到最新版本即可消除此安全风险。对于未将不受信任的输入传递给ui.html()的应用程序,则不受此漏洞影响。
NiceGUI是一个基于Python的UI框架,允许开发者使用Python代码构建Web用户界面。该框架提供了ui.html()组件用于直接渲染HTML内容到DOM中。然而,在2.24.2及以下版本中,ui.html()未对传入的内容进行任何HTML或JavaScript转义或清理操作。
漏洞原理:当开发者将用户可控的输入(如来自ui.input()组件的用户输入)直接传递给ui.html()进行渲染时,攻击者可以通过构造包含恶意JavaScript代码的输入(如<script>alert('XSS')</script>或<img src=x onerror=...>等载荷)来触发XSS。由于ui.html()直接将原始HTML插入到DOM中,浏览器会解析并执行其中的恶意脚本。
利用方式:攻击者需要诱导用户访问包含恶意输入的页面或应用,例如通过社会工程学手段让用户在受影响的NiceGUI应用中输入恶意HTML/JavaScript代码。当用户提交包含恶意载荷的内容后,若应用程序将用户输入直接通过ui.html()渲染显示,则恶意脚本将在受害者的浏览器上下文中执行。攻击者可以窃取用户的会话Cookie、劫持用户会话、篡改页面内容、进行钓鱼攻击或将受害者重定向到恶意网站。
修复方案:NiceGUI 3.0.0版本对ui.html()组件进行了安全强化,强制对传入内容进行HTML/JS转义处理,从根本上防止未转义内容被注入到DOM中。