漏洞详情
包管理器: bundler (RubyGems) 受影响的包: prosemirror_to_html 受影响版本: < 0.2.1 已修复版本: 0.2.1
影响
prosemirror_to_html gem 存在跨站脚本(XSS)漏洞,漏洞源于恶意HTML属性值。虽然标签内容被正确转义,但属性值未被转义,使得攻击者能够注入任意JavaScript代码。
受影响方:
- 任何使用
prosemirror_to_html将 ProseMirror 文档转换为 HTML 的应用程序。 - 处理用户生成的 ProseMirror 内容的应用程序面临最高风险。
- 查看渲染后的HTML输出的终端用户,其浏览器可能执行恶意 JavaScript。
攻击向量包括:
- 带有
javascript:协议的href属性:<a href="javascript:alert(document.cookie)"> - 事件处理程序:
<div onclick="maliciousCode()"> - 图像上的
onerror属性:<img src=x onerror="alert('XSS')"> - 其他可以执行 JavaScript 的 HTML 属性
补丁
目前正在开发修复程序。用户应在版本 0.2.1 或更高版本发布后立即升级。该补丁使用 CGI.escapeHTML 对所有HTML属性值进行转义,以防止注入攻击。
临时解决方案
在获得已修复版本之前,用户可以实施以下一种或多种缓解措施:
- 净化输出:将HTML输出通过如
Sanitize或Loofah等净化库进行处理:
|
|
- 实施内容安全策略(CSP):添加严格的CSP标头以防止内联JavaScript执行:
|
|
- 输入验证:如果可能,在转换之前验证并清理 ProseMirror 文档,以防止恶意内容进入系统。
参考
- 易受攻击的代码:https://github.com/etaminstudio/prosemirror_to_html/blob/ea8beb32f6c37f29f042ba4155ccf18504da716e/lib/prosemirror_to_html.rb#L249
- OWASP XSS 预防速查表:https://cheatsheetseries.owasp.org/cheatsheets/Cross_Site_Scripting_Prevention_Cheat_Sheet.html
- GHSA-52c5-vh7f-26fx
- etaminstudio/prosemirror_to_html@4d59f94
- https://github.com/rubysec/ruby-advisory-db/blob/master/gems/prosemirror_to_html/GHSA-vfpf-xmwh-8m65.yml
漏洞严重程度与详细信息
严重程度: 高危 CVSS 总体评分: 8.7 / 10
CVSS v4 基础指标:
|
|
- 攻击向量 (AV): 网络
- 攻击复杂度 (AC): 低
- 攻击要求 (AT): 无
- 所需权限 (PR): 无
- 用户交互 (UI): 被动
- 易受攻击系统的影响指标:
- 机密性 (VC): 高
- 完整性 (VI): 高
- 可用性 (VA): 低
- 后续系统的影响指标:
- 机密性 (SC): 无
- 完整性 (SI): 无
- 可用性 (SA): 无
弱点
CWE-79: 在网页生成过程中输入的不当中和(‘跨站脚本’) 产品在将用户可控的输入放置到用作提供给其他用户的网页的输出之前,未对其进行中和或未正确中和。
标识符
- GHSA ID: GHSA-4249-gjr8-jpq3
- CVE ID: 暂无已知CVE
源代码
- 仓库: etaminstudio/prosemirror_to_html
发布日期: 2025年11月13日 (至 GitHub Advisory Database) 审阅日期: 2025年11月13日 最后更新日期: 2025年11月13日