# ui.interactive_image SVG XSS漏洞
## 概述
NiceGUI 是一个基于 Python 的 UI 框架。在版本 3.3.1 及以下中,`ui.interactive_image` 组件存在 XSS(跨站脚本)漏洞。
## 影响版本
- 受影响版本:3.3.1 及以下
- 修复版本:3.4.0
## 细节
该组件使用 Vue 的 `v-html` 指令渲染 SVG 内容,但未对内容进行任何安全过滤。攻击者可通过 SVG 的 `<foreignObject>` 标签注入恶意 HTML 或 JavaScript 代码。
漏洞触发条件是在图像组件被渲染或更新时,若内容包含不受信任的 SVG,则可能导致脚本执行。
## 影响
此漏洞对仪表板或支持多用户的 Web 应用构成严重风险,尤其是那些会显示用户生成内容或图像注释的应用。攻击者可借此执行恶意脚本,窃取会话信息、劫持用户操作或发起其他攻击。
是否为 Web 类漏洞: 未知
判断理由:
| # | POC 描述 | 源链接 | 神龙链接 |
|---|---|---|---|
| 1 | A fast, simple scanner for detecting CVE-2025-66470 - XSS vulnerability in NiceGUI's ui.interactive_image component. | https://github.com/Jmehta10/CVE-2025-66470 | POC详情 |
标题: Stored/Reflected XSS in ui.interactive_image via unsanitized SVG content · Advisory · zauberzeug/nicegui · GitHub -- 🔗来源链接
标签:x_refsource_CONFIRM
神龙速读:
## 关键漏洞信息
### 漏洞概述
- **类型**: Stored/Reflected XSS
- **组件**: `ui.interactive_image`
- **问题**: 通过未被验证的SVG内容导致的跨站脚本攻击。
### 影响版本与修复版本
- **受影响版本**: <= 3.3.1
- **已修复版本**: 3.4.0
### 漏洞细节
- **问题所在**: ` nicegui/elements/interactive_image.js` 文件中的 `v-html` 指令未对SVG内容做任何验证直接渲染,允许注入恶意HTML或JavaScript。
- **攻击载体**: 通过SVG `<foreignObject>` 标签。
### 严重性
- **CVSS v3 基本分**: 6.1/10 (中等)
- **向量**: 网络
- **复杂度**: 低
- **所需权限**: 无
- **用户交互**: 需要
- **范围**: 改变
- **机密性、完整性、可用性影响**: 低
### 漏洞利用示例 (PoC)
```python
from nicegui import ui
@ui.page('/')
def main():
ui.label('NiceGUI SVG XSS PoC')
# 标准图片加载
img = ui.interactive_image('https://picsum.photos/640/360')
# 恶意载荷: 在SVG中嵌入原始HTML执行
img.content = (
'<foreignObject>'
'<body xmlns="[http://www.w3.org/1999/xhtml](http://www.w3.org/1999/xhtml)">'
'<img src=x onerror=alert("XSS-SVG")>'
'</body>'
'</foreignObject>'
)
ui.run()
```
### 影响与风险
- **类型**: 反射型/存储型跨站脚本攻击(视数据源而定)
- **危险程度**: 中等
- **风险**: 攻击者可以在图像组件渲染或更新时注入并执行恶意脚本,对显示用户生成内容或注释的仪表板或多用户应用程序尤为危险。
暂无评论