首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【漏洞情报】ProsemirrorToHtml 因未转义的 HTML 属性值存在跨站脚本(XSS)漏洞

【漏洞情报】ProsemirrorToHtml 因未转义的 HTML 属性值存在跨站脚本(XSS)漏洞

作者头像
qife122
发布2025-12-24 13:57:01
发布2025-12-24 13:57:01
780
举报

漏洞详情

  • bundler: prosemirror_to_html (RubyGems)
受影响版本

< 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)进行处理:

代码语言:javascript
复制
html = ProsemirrorToHtml.render(document)
safe_html = Sanitize.fragment(html, Sanitize::Config::RELAXED)

实施内容安全策略 (CSP):添加严格的 CSP 标头以防止内联 JavaScript 执行:

代码语言:javascript
复制
Content-Security-Policy: default-src 'self'; script-src 'self'

输入验证:如果可能,在转换之前验证并清理 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
  • 其他相关链接已在原报告中列出。

源代码项目地址:https://github.com/etaminstudio/prosemirror_to_html

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-12-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网络安全技术点滴分享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 漏洞详情
    • 受影响版本
    • 已修复版本
  • 描述
    • 影响
    • 补丁
    • 临时缓解措施
    • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档