CVE-2026-30691CVE-2026-30691 是 @cyntler/react-doc-viewer v1.17.1 版本中的跨站脚本漏洞。该漏洞源于 TXTRenderer 组件处理 .txt 文件时未过滤内容,直接将原始数据转为 ReactNode 渲染。攻击者可通过上传包含恶意 JS 的特制文本文件,诱导受害者查看以执行任意脚本。此漏洞可能导致用户数据泄露或会话劫持,危害较大。
该漏洞的技术核心在于 @cyntler/react-doc-viewer 库中 TXTRenderer 组件对数据流处理的不当。通常情况下,React 会自动对插值数据进行 HTML 实体编码,从而阻断 XSS 攻击。然而,该组件在渲染 .txt 文件内容时,使用了不安全的类型转换方式,直接将未经过滤的字符串作为 ReactNode 渲染。这种处理方式等同于在 Vue 中使用 v-html 或在 React 中使用 dangerouslySetInnerHTML,且没有任何白名单过滤机制。攻击者利用此特性,可以构造包含恶意脚本标签(如 <script>)或事件处理器(如 onerror、onload)的文本文件。一旦受害者访问包含该文件的页面,浏览器便会解析这些恶意代码。由于漏洞涉及前端渲染逻辑,攻击者可借此窃取用户的 Session Token、本地存储数据,甚至结合 CSRF 进一步控制用户账户。