漏洞概述
Saleor 是一个开源的电子商务平台。在 3.0.0 至 3.20.107、3.21.42 和 3.22.26 版本中,存在一个高危安全漏洞(CVE-2026-23499)。该漏洞允许已认证的后台员工用户或应用(Apps)上传任意文件,包括包含恶意 JavaScript 的 HTML 和 SVG 文件。若媒体文件与管理后台部署在同一域名下且未设置适当的安全响应头,攻击者可利用此漏洞在其他用户浏览器中执行恶意脚本,从而窃取其访问令牌或刷新令牌。
漏洞详情
- CVE 编号:CVE-2026-23499
- 漏洞类型:CWE-79(跨站脚本)、CWE-434(不受限制的文件上传)
- CVSS 评分:8.5(HIGH)
- 影响版本:Saleor 3.0.0 至 3.20.107、3.21.0 至 3.21.42、3.22.0 至 3.22.26
影响范围
以下部署方式会受到该漏洞影响:
- 媒体文件与 Saleor 管理后台部署在同一域名下(例如:后台为
example.com/dashboard/,媒体文件位于example.com/media/); - 服务器未对媒体文件返回
Content-Disposition: attachment响应头; - 未对 HTML/SVG 等可执行脚本的文件类型进行访问限制或内容安全策略(CSP)防护。
注意:使用 Saleor Cloud 的用户不受此漏洞影响。
风险分析
具有后台权限的恶意内部人员或被入侵的应用可上传包含恶意 JavaScript 的 HTML 或 SVG 文件。当其他管理员访问这些文件时,脚本将在其浏览器上下文中执行,可能导致会话令牌泄露、账户接管等严重后果。该漏洞属于存储型 XSS(Stored XSS),危害程度高,尤其在未隔离媒体资源域名的部署环境中。
修复建议
- 立即升级至已修复版本:Saleor 3.20.108、3.21.43 或 3.22.27;
- 若无法立即升级,可通过以下临时措施缓解风险:
- 配置 CDN 或反向代理,对所有媒体文件响应添加
Content-Disposition: attachment头,强制浏览器下载而非渲染文件; - 阻止服务器直接提供 HTML 和 SVG 文件;
- 为媒体文件路径设置严格的内容安全策略(CSP),例如:
Content-Security-Policy: default-src 'none'; base-uri 'none'; frame-ancestors 'none'; form-action 'none';
- 配置 CDN 或反向代理,对所有媒体文件响应添加
