CVE-2026-33704Chamilo LMS是一款学习管理系统。在1.11.38版本之前,系统存在严重的安全漏洞。任何经过身份验证的用户(包括学生)均可利用BigUpload端点,通过构造特定的请求参数,向服务器写入任意文件内容。由于系统仅过滤了.php扩展名但未过滤.pht扩展名,在特定Apache配置下,攻击者可上传并执行恶意PHP代码,导致服务器被完全控制。
该漏洞源于Chamilo LMS在处理文件上传时的逻辑缺陷。具体而言,系统提供的BigUpload端点允许经过身份验证的用户通过HTTP POST请求上传文件。该接口通过请求参数`key`指定文件名,而请求的原始主体直接作为文件内容存储。尽管开发人员实施了安全措施以防止直接上传PHP文件,将`.php`扩展名重命名为`.phps`,但该过滤机制并不完善。攻击者可以利用`.pht`扩展名绕过此限制,因为在许多默认或常见配置的Apache Web服务器中,`.pht`被配置为可由PHP处理器解析。因此,攻击者只需构造一个包含恶意PHP Webshell的POST请求,并将文件名后缀设为`.pht`,即可成功写入恶意文件。一旦文件被写入Web目录,攻击者通过浏览器访问该文件,即可触发代码执行,从而在服务器上执行任意系统命令,完全控制受影响的服务器。