lukasz-rybak/CVE-2026-23499

GitHub: lukasz-rybak/CVE-2026-23499

这是一个针对 Saleor 电商平台因不受限制文件上传而导致的存储型 XSS 漏洞(CVE-2026-23499)的安全分析与修复指南。

Stars: 0 | Forks: 0

# CVE-2026-23499: Saleor 因不受限制的文件上传而面临存储型 XSS 漏洞 ## 概述 | 字段 | 详情 | |---|---| | **CVE ID** | [CVE-2026-23499](https://nvd.nist.gov/vuln/detail/CVE-2026-23499) | | **严重性** | HIGH | | **公告** | [查看公告](https://github.com/saleor/saleor/security/advisories/GHSA-666h-2p49-pg95) | | **发现者** | [Lukasz Rybak](https://github.com/lukasz-rybak) | ## 受影响产品 - **saleor/saleor** ## 详情 Saleor 允许经过身份验证的员工用户或 Apps 上传任意文件,包括包含 Javascript 的恶意 HTML 和 SVG 文件。根据部署策略的不同,这些文件可能会在与 dashboard 相同的域下提供服务,且没有任何限制,从而导致在用户浏览器的上下文中执行恶意脚本。 ### 影响 恶意的内部员工可以制作脚本注入来针对其他员工,可能窃取他们的访问令牌和/或刷新令牌。 ### 我是否受影响? 如果满足以下情况,则您受影响: - 您在与 dashboard 相同的域下托管媒体文件,例如 dashboard 位于 `example.com/dashboard/` 而媒体文件位于 `example.com/media/` 下 —— 如果媒体文件托管在**不同**的域中,例如 `media.example.com`,则您不受影响。 - 您没有为媒体文件返回 `Content-Disposition: attachment` 头。 Saleor Cloud 用户不受影响。 ### 检测与缓解措施 该问题已在以下版本中修复:3.22.27、3.21.43 和 3.20.108。 重要提示:如果您认为自己受影响,或者不确定并希望进行验证,您应该运行以下命令: ``` $ ./manage.py remove_invalid_files ``` 这将扫描所有上传的文件(在媒体存储中,例如文件系统、S3 存储桶等)。您应该查找意外的文件,如果发现差异,则可以: - 修改配置,使 Saleor 允许该文件(请参阅[文件上传文档](https://docs.saleor.io/setup/configuration#file-uploads)) - 手动或自动删除该文件(`./manage.py remove_invalid_files --apply`) ### 变通方法 我们强烈建议升级到最新版本。如果无法立即升级,可能的变通方法包括: - 配置托管媒体文件的服务器(例如 CDN 或反向代理)返回 Content-Disposition: attachment 头。这将指示浏览器下载文件而不是在浏览器中渲染它们。 - 阻止服务器返回 HTML 和 SVG 文件。 - 为媒体文件设置 `Content-Security-Policy`,例如 `Content-Security-Policy: default-src 'none'; base-uri 'none'; frame-ancestors 'none'; form-action 'none';` ### 参考资料 - 该问题由以下 commit 引入:https://github.com/saleor/saleor/commit/9110eba68c3f73afa1f72b45bd9b1394c752d335 - 文档:https://docs.saleor.io/security/#restricted-file-uploads - `main` 分支修复:https://github.com/saleor/saleor/commit/b3cb27b3fe96dae3c879063e56d32a9398eabd24 - 3.22:https://github.com/saleor/saleor/commit/ac6936a336289c77398ef600cad3498ad4ba261c - 3.21:https://github.com/saleor/saleor/commit/7d33efc7a06252320cd51cbb20c2e308aed2fd10 - 3.20:https://github.com/saleor/saleor/commit/77f7927a0db9a216440df92c51012136f13e1d99 ### 致谢 此漏洞由 [Łukasz Rybak](https://github.com/lukasz-rybak) 报告。 ## 参考资料 - https://github.com/saleor/saleor/security/advisories/GHSA-666h-2p49-pg95 - https://github.com/saleor/saleor/commit/77f7927a0db9a216440df92c51012136f13e1d99 - https://github.com/saleor/saleor/commit/7d33efc7a06252320cd51cbb20c2e308aed2fd10 - https://github.com/saleor/saleor/commit/9110eba68c3f73afa1f72b45bd9b1394c752d335 - https://github.com/saleor/saleor/commit/ac6936a336289c77398ef600cad3498ad4ba261c - https://github.com/saleor/saleor/commit/b3cb27b3fe96dae3c879063e56d32a9398eabd24 - https://docs.saleor.io/security/#restricted-file-uploads ## 免责声明 此 CVE 是按照协同漏洞披露原则进行负责任披露的。此处提供的信息仅用于教育和防御目的。
标签:CISA项目, Content-Disposition, CVE-2026-23499, GitHub Advanced Security, GraphQL, HTML注入, JavaScript注入, OpenCanary, S3存储, Saleor, Session劫持, SVG注入, Web安全, 不受限制的文件上传, 任意文件上传, 内容安全策略, 同源策略, 存储型XSS, 安全加固, 安全漏洞, 持久型跨站脚本, 漏洞修复, 电商平台, 窃取令牌, 网络安全, 网络安全培训, 蓝队分析, 规则仓库, 逆向工具, 隐私保护, 高危漏洞