CVE-2026-33702Chamilo 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)。这导致攻击者可以篡改他人的学习成绩、伪造课程完成状态或修改学习时长,严重破坏了数据的完整性。这种利用方式隐蔽且危害较大,因为它绕过了前端或中间件的常规检查,直接操作后端数据。