CVE-2026-33710Chamilo LMS在特定版本前存在API密钥生成逻辑缺陷。由于生成算法中使用了固定参数的rand函数,导致生成的密钥缺乏足够的随机性。攻击者若知道用户名及密钥创建的大致时间,即可通过暴力破解手段获取该用户的API密钥,从而接管用户权限。该漏洞在版本1.11.38和2.0.0-RC.3中已修复。
该漏洞源于Chamilo LMS生成REST API密钥的算法存在严重缺陷。其核心代码逻辑为`md5(time() + (user_id * 5) - rand(10000, 10000))`。由于`rand(10000, 10000)`函数的最小值和最大值相同,其返回值恒定为10000,导致算法简化为`md5(timestamp + user_id*5 - 10000)`。这极大地降低了密钥空间的熵值。攻击者无需认证,仅需猜测目标账号的用户ID(通常可枚举)和密钥生成的大致时间戳(通常误差在几小时或几天内),即可在本地通过循环计算MD5来暴力破解出有效的API密钥,进而利用该密钥访问受保护的REST API接口。