walidriouah/CVE-2026-30691
GitHub: walidriouah/CVE-2026-30691
这是一个针对@cyntler/react-doc-viewer库中存储型XSS漏洞(CVE-2026-30691)的PoC公告,用于安全研究和漏洞验证。
Stars: 0 | Forks: 0
# CVE-2026-30691 - 漏洞公告
### CVE-2026-30691 的官方 MITRE 漏洞记录详情与技术文档。
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
[建议描述]
@cyntler/react-doc-viewer v1.17.1 中存在跨站脚本 (XSS) 漏洞,允许远程攻击者通过精心构造的 .txt 文件执行任意 JavaScript。TXTRenderer 组件未能清理文件内容,并将原始数据显式转换为 ReactNode。
[附加信息]
"默认情况下,TXTRenderer 用于处理所有基于文本的文件。由于该库在 React 应用程序中被广泛用于预览用户上传的内容,对于未在将文件内容传递给查看器之前进行严格验证的应用程序,此漏洞构成重大风险。"
[漏洞类型] 跨站脚本 (XSS)
[产品供应商] cyntler
[受影响产品代码库] @cyntler/react-doc-viewer - 1.17.1
[受影响组件] src/renderers/txt/index.tsx
[攻击类型] 远程
[代码执行影响] 是
[信息泄露影响] 是
[攻击向量]
"攻击者必须提供包含恶意 HTML 或 JavaScript 代码的精心构造的 .txt 文件。当受害者使用 DocViewer 组件打开此文件时,脚本将在其浏览器中执行。"
[参考链接] https://github.com/cyntler/react-doc-viewer/issues/317
[发现者] Walid Riouah
请使用 CVE-2026-30691。
-----BEGIN PGP SIGNATURE-----
-----END PGP SIGNATURE-----
## 🛠️ 详细技术背景
### 📝 描述
在 `@cyntler/react-doc-viewer` 包 (v1.17.1) 中发现了一个存储型跨站脚本 (XSS) 漏洞。该漏洞存在于 `TXTRenderer` 组件中,该组件通过将 `.txt` 文件的原始文件内容显式转换为 `ReactNode` 进行渲染,且未进行任何清理或实体转义。
### 💻 漏洞代码
在 `src/renderers/txt/index.tsx` 文件中:
{currentDocument?.fileData as ReactNode}
### 🔬 概念验证 (PoC)
要重现该漏洞,请创建一个名为 `exploit.txt` 的文件,包含以下明确的脚本有效载荷,并将其加载到文档查看器组件中:
<h1 style="color: red;">有漏洞!</h1>
<script>alert('XSS_SUCCESS'); document.body.style.background='red';</script>
<img src=x onerror="console.log('XSS_Executed_Successfully')">
### 🎯 影响
攻击者可以在受害者的浏览器上下文中执行任意 JavaScript。这可能导致:
* **会话劫持:** 通过客户端 Cookie/LocalStorage 数据窃取。
* **未授权操作:** 代表已验证的用户会话执行。
* **应用程序破坏:** 以及针对平台用户的下游钓鱼攻击。
### 🛡️ 修复建议
在渲染前使用如 `DOMPurify` 这样的 HTML 清理库对动态文本输入进行清理,或避免将原始字符串输入不安全地转换为 `ReactNode` 对象:
import DOMPurify from 'dompurify';
const sanitizedHTML = DOMPurify.sanitize(currentDocument?.fileData);
return <div dangerouslySetInnerHTML={{ __html: sanitizedHTML }} />;
*公告由 **Walid Riouah**(网络安全研究员 & 红队成员)整理。*标签:CVE漏洞, JavaScript安全, React开发, TypeScript, Web安全, XSS漏洞, 代码执行漏洞, 前端安全, 多模态安全, 存储型XSS, 安全公告, 安全插件, 恶意文件执行, 情报收集, 数据可视化, 文件上传漏洞, 文档预览, 漏洞研究, 用户输入安全, 网络安全, 自动化分析, 蓝队分析, 跨站脚本, 隐私保护