XSS vulnerability via component attributes
问题
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome 97.0.4692.71 可复制演示链接 https://jsfiddle.net/ovrz5ug2/4/ 描述一下那个虫子 你好——我们在多人游戏场景中使用 GrapesJS 时遇到了这个 XSS 漏洞,几个有权限的用户可以通过编辑器(即非开发者)对模板和组件进行修改。实际上,这使他们容易受到组织内部的攻击,一个用户添加了恶意代码,另一个用户可能发现并运行它。 如何复现这个漏洞?在组件的 id 属性中添加恶意代码,可以直接在HTML中或通过特征管理器(并保存)——在这里, id="<details/open/ontoggle=alert(document.location)> 在实时预览中点击组件,观察警报,或者通过样式管理器,使用组件状态下拉菜单并将其更改为其他状态,例如悬停。 预期的行为是什么? 不通过组件属性进行XSS(包括但不限于 id)。 目前的行为是什么? GrapesJS 运行恶意代码。 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: 如果你有任何建议或指导,我可以帮你申请永久居民。 行为准则 [X] 我同意遵守本项目的行为准则
回答(4)
谢谢@diemkay如果你有任何建议,请参考这个问题:https://github.com/artf/grapesjs/issues/3082
@artf 谢谢,但我已经看过那个工单了,它并没有涵盖我这里描述的问题。
注入不在实时预览中,而是在样式管理器中,它尝试通过设置“.innerHtml”来显示组件的“id”。
是的,抱歉,关得太早😁了。我会试着在下一个版本修复。
谢谢你举报,@diemkay。 安全和依赖性问题很重要。GrapesJS 团队积极致力于保持依赖系统的更新。 为你现在: 运行“npm审计修复”以查看可用的补丁 查看是否有更新的GrapesJS版本,可能已经解决了这个问题 如有稳定版,升级前先测试最新稳定版 如果漏洞非常严重,可以使用“npm audit fix --force”,但请务必彻底测试 理解风险: 在GitHub安全公告中查看具体漏洞详情 并非所有高严重性问题都会影响你的代码路径 某些漏洞仅在特定条件下触发 保持最新: 关注GrapesJS的新发布 订阅仓库的安全通知 团队在发布周期中优先考虑安全更新
相关问答
通过相似的问题讨论继续研究。
问题 #4411
XSS when add class name to Selector Manager
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome v102 可复制演示链接 https://jsfiddle.net/szLp8h4n 描述一下那个虫子 如何复现这个漏洞?选择任意组件像 <a href="#"onclic...
问题 #5460
从“pageManager”加载“组件”和“样式”
GrapesJS版本[X] 我确认使用最新版本GrapesJS你用的是什么浏览器? Chrome v117.0.5938.149可复制演示链接 https://jsfiddle.net/9oLrsvya/描述一下那个虫子 如何复现这个漏洞?请查看jsfiddle中的pageMa...
问题 #4754
Closing `</script>` tag not escaped for script properties
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome 版本 107.0.5304.122(64 位) 可复制演示链接 https://jsfiddle.net/j5khz1gm/ 描述一下那个虫子 如何复现这个漏洞?创建具有以...
问题 #4341
在为 HTML 组件添加边界样式时,css json 只抓取边界选择器,却不抓取 border-width、border-style、border-colorBUG 的选择器:
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome v101.0.4951.54 可复制演示链接 https://jsfiddle.net/7sn5h91r/7/ 描述一下那个虫子 我的问题是样式边界属性的宽度、样式和颜色在...
与此问题匹配的付费插件
根据问题关键词和标签相关性精选,助你更快交付。
正在加载付费插件推荐……
相关教程
关于同一主题的深入指南。
教程
Introducing Search on GJS.Market
GJS.Market now has one search across everything we publish — plugins, articles, community questions, guides, authors and services. Press ⌘K from any page.
教程
如何在2026年用 GrapesJS 构建AI驱动的页面构建器
我们构建GJSDocs的经验——从简单的AI文本生成到结构化、上下文感知的视觉编辑
教程
2026年构建一个SaaS页面构建器需要多少钱?
2026年构建一个SaaS页面构建器的成本是多少?探索实际的开发成本、时间表、功能,以及使用 GrapesJS 如何降低成本
浏览插件分类
直接跳转到市场上的插件分类页面。