关键漏洞信息 漏洞类型 Fixed XSS in report section 版本 3.28.0 描述 恶意的Python代码可以嵌入到报告中,以在用户的浏览器中执行任意JavaScript。 问题发生在应用程序允许用户在报告中存储Python代码时,这些代码在其他用户查看时会自动执行。 漏洞源于使用Pyodide的JavaScript桥没有任何限制,允许攻击者突破预期的Python执行沙箱。 源 - 污点分析 1. 源: 入口点是 API端点,它接受POST请求中的 字段中的用户提供的Python代码。 2. 数据流: - 代码未经任何清理直接存储在数据库中。 - 当检索时,代码被嵌入到React组件中。 - Markdown渲染器解释带有 语言标签的代码块。 - 这些代码块传递给Board组件执行。 3. 汇: 执行发生在 中,其中: - Pyodide加载并执行Python代码。 - Python代码使用 执行任意JavaScript。 - 对可执行的JavaScript没有实施任何限制或检查。 概念验证 1. 创建一个恶意报告: 2. 注意响应中返回的报告ID。 3. 访问报告并在加载时,恶意JavaScript在受害者的浏览器上下文中执行,将所有报告数据发送到攻击者控制的服务器。 影响 攻击者可以在受害者的浏览器中运行任何JavaScript代码。 窃取身份验证cookie和令牌。 访问和窃取应用程序中的敏感信息。 代表受害者发出经过身份验证的请求。