CVE-2026-23499Saleor是一款开源电商平台,存在一处严重的安全漏洞。漏洞源于该平台在3.0.0版本至修复版本之间,允许经过认证的Staff用户或第三方Apps上传任意文件,包括恶意构造的HTML和SVG文件。这些恶意文件可能包含JavaScript脚本代码。当平台将媒体文件托管在与Dashboard相同的域名下时(例如Dashboard位于example.com/dashboard/,媒体文件位于example.com/media/),浏览器会从同一源加载这些文件,导致恶意脚本在用户浏览器上下文中执行。攻击者(恶意员工)可利用此漏洞构造钓鱼脚本,针对其他员工用户发起攻击,窃取其访问令牌(Access Token)和刷新令牌(Refresh Token),从而获取更高权限或横向移动。值得注意的是,如果媒体文件托管在不同域名(如media.example.com),或者服务器为媒体文件返回Content-Disposition: attachment头,则不会受到此漏洞影响。Saleor Cloud用户不受此漏洞影响。
该漏洞属于存储型跨站脚本攻击(Stored XSS)与任意文件上传漏洞的组合。攻击流程如下:1) 攻击者以Staff用户或App身份登录Saleor平台;2) 利用文件上传功能上传包含恶意JavaScript的SVG或HTML文件,例如:<svg onload=alert(document.cookie)>;3) 文件被存储在服务器媒体目录中;4) 当其他用户访问该文件URL时,浏览器加载并执行其中的恶意脚本;5) 脚本可窃取受害者的认证令牌、会话信息或执行其他恶意操作。漏洞的根本原因在于平台未对上传文件类型进行严格限制,且未对文件内容进行安全清洗。攻击者可利用SVG文件格式的特殊性(支持<script>标签和事件处理器如onload)绕过常规防护。修复方案包括:升级到3.22.27、3.21.43或3.20.108版本;在CDN或反向代理层配置Content-Disposition: attachment响应头;添加严格的Content-Security-Policy头部;禁止上传和提供HTML/SVG文件类型。