CVE-2026-21872CVE-2026-21872是NiceGUI框架中的一个存储型跨站脚本(XSS)漏洞。NiceGUI是一个基于Python的现代UI框架,广泛用于构建Web应用程序用户界面。该漏洞存在于ui.sub_pages功能的点击事件监听器实现中,由于对用户输入的链接渲染缺乏充分的输入验证和输出编码,攻击者可以注入恶意JavaScript代码。当其他用户访问包含恶意链接的页面并主动点击该链接时,攻击者的恶意脚本将在受害者浏览器中执行,可能导致会话劫持、敏感信息窃取、钓鱼攻击等严重安全问题。漏洞影响范围涵盖2.22.0至3.4.1版本,已在3.5.0版本中得到修复。
该漏洞的根本原因在于NiceGUI的ui.sub_pages组件在处理链接点击事件时采用了不安全的实现方式。具体问题包括:1) 点击事件监听器直接使用攻击者可控的输入来渲染链接,未进行适当的HTML转义或内容安全策略验证;2) 链接渲染逻辑允许攻击者注入包含JavaScript协议(如javascript:)的URL或通过事件处理器属性注入脚本;3) 缺乏对用户输入的上下文感知编码,导致恶意脚本可以在DOM中被解析执行。攻击者利用此漏洞需要诱导受害者主动点击特制的恶意链接,触发点击事件后执行存储的XSS payload。由于ui.sub_pages通常用于构建多页面导航结构,攻击者注入的恶意代码可以在整个应用范围内持续存在并影响所有访问该页面的用户。