漏洞概述 该漏洞涉及Discourse平台中SVG文件的处理问题。具体来说,漏洞允许攻击者在SVG文件中嵌入内部DTD实体,这些实体可能包含恶意脚本。此外,漏洞还影响了用户头像控制器和Nginx本地上传配置,导致SVG文件可能被直接执行或不当处理。 影响范围 用户头像控制器:用户头像控制器在处理SVG文件时存在漏洞,可能导致恶意脚本的执行。 Nginx本地上传配置:Nginx配置在处理SVG文件时也存在漏洞,可能导致SVG文件被直接执行或不当处理。 修复方案 1. 改进SVG sanitization: - 在 中,增加了对SVG文件的额外检查,确保其内容安全。 - 添加了 头,设置为 ,以限制SVG文件的执行权限。 - 设置了 头为 ,防止SVG文件被直接执行。 2. Nginx配置更新: - 在 中,增加了对SVG文件的额外处理规则,确保其内容安全。 - 设置了 头为 ,防止SVG文件被直接执行。 3. 代码示例: POC代码 页面中未提供具体的POC代码,但根据修复方案,可以推测攻击者可能通过上传包含恶意DTD实体的SVG文件来触发漏洞。修复后的代码通过增加额外的检查和设置安全头来防止此类攻击。