Pavanvootla-sec/CVE-2026-37196
GitHub: Pavanvootla-sec/CVE-2026-37196
该仓库披露了 Nirix TrAQ v3.9.0 工单描述字段中因未正确编码用户输入而导致的高危存储型 XSS 漏洞,并提供 PoC 与修复建议。
Stars: 0 | Forks: 0
# CVE-2026-37196 – nirix traq v3.9.0 中的存储型跨站脚本攻击 (XSS)
## 概述
**nirix traq v3.9.0** 中存在一个**存储型跨站脚本攻击 (XSS)** 漏洞。用户在**工单描述字段**中提供的输入在应用程序界面中渲染之前,未得到妥善的过滤处理。
此漏洞允许经过身份验证的攻击者将恶意 JavaScript payload 注入到工单描述中。该 payload 会被应用程序存储,并在其他用户(包括管理员等特权用户)查看受影响的工单时间线或渲染组件时被执行。
* **CVE ID:** CVE-2026-37196
* **漏洞类型:** 存储型跨站脚本攻击 (CWE-79)
* **供应商:** nirix
* **产品:** traq
* **受影响版本:** 3.9.0
* **攻击类型:** 远程
* **严重程度:** 高
* **研究员:** Pavan V
## 漏洞摘要
该问题的起因是在渲染用户可控的 HTML/JavaScript 输入时,缺乏适当的输出编码或过滤。
经过身份验证的攻击者可以创建或修改工单,并将恶意 payload 插入到**描述字段**中。当其他用户查看受影响的工单时,注入的脚本会在受害者的浏览器上下文中执行。
这可能导致:
* 任意 JavaScript 执行
* 会话劫持
* 未经授权代替受害者执行操作
* 窃取敏感信息
* 在特定场景下导致权限提升
## 受影响组件
**工单描述字段 / 时间线渲染组件**
当包含恶意 HTML 或 JavaScript 的工单描述在应用程序界面中渲染时,由于未进行充分的转义,从而触发了该漏洞。
## 概念验证 (PoC)
### 示例 Payload
```
```
### 复现步骤
1. 使用有效的用户账户登录 traq v3.9.0 实例。
2. 导航到工单创建功能。
3. 创建一个新工单。
4. 将恶意 payload 插入到**描述字段**中。
示例:
```
```
5. 保存工单。
6. 从其他用户账户或特权账户打开或预览该工单。
7. 观察到在渲染描述时,JavaScript payload 自动执行。
## 安全影响
成功利用此漏洞可能允许攻击者:
* 在受害者浏览器中执行任意 JavaScript
* 访问已验证的会话信息
* 代替受影响用户执行操作
* 篡改工单内容
* 潜在地针对管理员进行权限滥用
## 根本原因
该应用程序在浏览器中渲染工单描述之前,未能正确过滤或编码用户可控的输入。
用户输入被存储并在随后渲染时,没有采取足够的保护措施来防止 HTML/JavaScript 注入。
## 缓解措施
建议采取以下缓解措施:
* 妥善过滤用户可控的 HTML 内容
* 应用上下文输出编码
* 使用基于白名单的 HTML 过滤器
* 部署强大的内容安全策略 (CSP)
* 避免直接渲染来自用户可控输入的原始 HTML
## 时间线
| 事件 | 日期 |
| ------------------------ | ---------------------- |
| 发现漏洞 | 2026 |
| 通知供应商 | 负责任的披露 |
| 分配 CVE | CVE-2026-37196 |
| 公开披露 | 2026 |
## 免责声明
发布此仓库**仅供安全研究和防御意识教育之目的**。所提供的信息旨在帮助开发人员和防御者了解并修复该问题。
## 致谢
**发现者:**
Pavan V
标签:PoC, Web安全, 多模态安全, 数据可视化, 暴力破解, 漏洞分析, 漏洞披露, 蓝队分析, 跨站脚本(XSS), 路径探测, 防御加固