CVE-2020-36891CVE-2020-36891是Kentico Xperience中的一个高危安全漏洞,属于存储型跨站脚本攻击(Stored XSS)。该漏洞源于应用程序在文件上传功能中未正确验证上传文件的Content-Type与实际文件扩展名之间的匹配性。攻击者可以利用此漏洞上传包含恶意JavaScript代码的文件,并通过操纵MIME类型使其绕过安全检查。当其他用户访问或查看这些被上传的恶意文件时,嵌入其中的恶意脚本将在受害者浏览器中执行,从而窃取会话令牌、劫持用户账户或进行其他恶意操作。此漏洞需要攻击者具有低权限账户,但能够通过网络远程利用,对应用程序的整体安全性构成严重威胁。
该漏洞存在于Kentico Xperience的文件上传处理模块中。应用程序在接收用户上传的文件时,仅检查了Content-Type header中声明的MIME类型,而未验证文件内容的实际格式或文件扩展名是否与声明的MIME类型一致。攻击者可以构造一个HTML或SVG文件,其中包含恶意JavaScript代码(如<script>alert('XSS')</script>),但将其Content-Type设置为image/png或image/jpeg等图片MIME类型,从而绕过服务器端的内容类型验证。文件被存储在服务器上后,当其他用户通过应用程序的Web界面访问或预览该文件时,浏览器会根据文件内容(而非服务器声明的Content-Type)将其解析为HTML/SVG,导致嵌入的JavaScript代码被执行。由于这是存储型XSS,恶意脚本会永久存在于服务器上,影响所有访问该内容的用户。攻击者可利用此漏洞进行会话劫持、凭证窃取、蠕虫传播等攻击。