CVE-2026-21873CVE-2026-21873是NiceGUI框架中的一个高危安全漏洞。NiceGUI是一个基于Python的现代UI框架,用于构建Web用户界面。该漏洞存在于pushstate事件监听器的实现中,该监听器由ui.sub_pages功能使用。从版本2.22.0到3.4.1的NiceGUI框架存在不安全实现,攻击者可以通过跨站方式(使用iframe)操纵URL的片段标识符(fragment identifier)。URL片段标识符通常用于页面内导航,以#符号开头。由于事件监听器未正确验证和过滤片段标识符内容,攻击者可以注入恶意脚本或执行非预期的页面行为。此漏洞的CVSS评分为7.2,属于高危级别,攻击复杂度低且无需认证或用户交互即可利用。该问题已于版本3.5.0中修复,建议用户尽快升级以消除安全风险。
该漏洞的核心问题在于NiceGUI的pushstate事件监听器对URL片段标识符的处理存在缺陷。当用户访问使用ui.sub_pages功能的NiceGUI应用时,pushstate事件监听器会处理URL变化,包括片段标识符部分(#号后的内容)。攻击者可以通过创建一个包含目标NiceGUI应用的iframe,并动态修改iframe的URL片段标识符,触发pushstate事件。由于事件监听器未对片段标识符进行充分的输入验证和输出编码,恶意构造的片段标识符可以被执行,从而实现跨站脚本攻击或其他恶意操作。这种攻击方式具有以下特点:1) 攻击者可以绕过同源策略的限制;2) 无需用户交互即可触发;3) 片段标识符的变化不会导致页面重新加载,增加了隐蔽性。攻击者可能利用此漏洞窃取用户会话信息、进行钓鱼攻击或执行其他客户端攻击。