CVE-2025-12163CVE-2025-12163是WordPress Omnipress插件中的一个高危安全漏洞,该漏洞允许经过身份验证的攻击者通过SVG文件上传功能注入恶意脚本代码。Omnipress是一款广泛应用于WordPress网站的插件,主要用于内容管理和文件处理功能。漏洞的根本原因在于插件对用户上传的SVG文件缺乏有效的输入消毒和输出转义处理。攻击者可以利用此漏洞在SVG文件中嵌入JavaScript代码,当其他用户访问这些被上传的SVG文件时,恶意脚本将在受害者浏览器中执行,从而实现窃取会话Cookie、劫持用户账户、进行钓鱼攻击等恶意行为。由于SVG文件可以存储在服务器上并被多次访问,这种存储型XSS漏洞的影响范围较广,危害程度不容忽视。漏洞影响Omnipress插件1.6.5及以下所有版本,CVSS评分6.4,属于中危漏洞。攻击者需要拥有WordPress网站的Author级别或更高权限账户才能利用此漏洞,这降低了漏洞被利用的门槛,因为Author权限在WordPress中相对容易获得。
漏洞存在于Omnipress插件的文件上传处理模块中,具体位置在FileUploader.php(第106行)、RestControllersBase.php(第81行)和FileUploadRestController.php(第57行)的代码中。插件在处理SVG文件上传时,直接将用户提供的文件内容保存到服务器目录,而没有对SVG标签中的JavaScript代码进行过滤或转义。SVG格式本身支持内联脚本,攻击者可以在SVG文件的<script>标签中嵌入恶意JavaScript代码,或者利用SVG的事件处理属性(如onload、onerror等)执行脚本。当受害者在浏览器中直接访问或通过<img>标签引用这些SVG文件时,浏览器会解析SVG并执行其中嵌入的恶意脚本。由于WordPress插件通常会将上传的文件保存在可公开访问的目录中,攻击者只需获取文件URL即可诱导其他用户访问。攻击者利用WordPress的Author权限即可上传恶意SVG文件到服务器,插件的REST API端点缺乏对SVG文件内容的严格校验,允许任何经过身份验证的用户上传任意内容的文件。修复后的版本需要添加SVG文件内容的安全检查,禁用SVG中的脚本执行,或将上传的SVG文件存储在非公开目录中。