IPBUF安全漏洞报告
English
CVE-2026-33618 CVSS 8.8 高危

CVE-2026-33618 Chamilo LMS远程代码执行漏洞

披露日期: 2026-04-10

漏洞信息

漏洞编号
CVE-2026-33618
漏洞类型
远程代码执行
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Chamilo LMS

相关标签

RCE远程代码执行Chamilo LMSCVE-2026-33618代码注入Eval注入

漏洞概述

Chamilo LMS在2.0.0-RC.3之前的版本中存在严重的远程代码执行漏洞。该漏洞源于`PlatformConfigurationController::decodeSettingArray()`方法不安全地使用了PHP的`eval()`函数来解析数据库中的平台设置。攻击者在获得管理员权限后,可在设置中注入任意恶意PHP代码。当任何用户(包括未认证用户)请求`/platform-config/list`接口时,这些代码将被服务器执行,从而完全控制目标系统。

技术细节

该漏洞的根本原因是Chamilo LMS在处理配置数据时,直接将数据库存储的配置字符串传递给PHP的`eval()`函数进行执行。`eval()`函数会将字符串当作PHP代码执行,这属于极度危险的编程实践。攻击链通常分为两个阶段:首先,攻击者利用其他漏洞(如Advisory 1)获取系统的后台管理员权限;其次,攻击者利用管理员权限修改特定的平台设置项,将包含恶意PHP函数(如`system()`、`shell_exec()`等)的代码注入到配置字段中。由于系统逻辑设计缺陷,当任何用户访问`/platform-config/list`路由时,后端会调用`decodeSettingArray()`方法读取并解析这些被污染的配置,导致`eval()`执行攻击者注入的代码,从而在服务器端实现无差别的远程代码执行。

攻击链分析

STEP 1
获取初始权限
攻击者利用其他漏洞(如Advisory 1)获取Chamilo LMS的管理员账户权限。
STEP 2
注入恶意代码
攻击者登录后台,利用管理员功能修改平台设置,在设置字段中注入包含PHP恶意代码的Payload(如利用eval执行系统命令)。
STEP 3
触发漏洞执行
攻击者诱导或等待任意用户(包括未授权用户)访问`/platform-config/list`接口。系统在处理该请求时调用`decodeSettingArray()`方法,使用eval()解析并执行注入的代码。
STEP 4
获取服务器控制权
恶意代码在服务器端运行,攻击者获得远程命令执行权限,从而控制整个服务器。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<?php // PoC Simulation for CVE-2026-33618 // This script demonstrates how the vulnerable eval() usage can be exploited. // Simulating the vulnerable function in PlatformConfigurationController function decodeSettingArray($settingString) { // VULNERABILITY: Direct use of eval() on database content return eval("return " . $settingString . ";"); } // Step 1: Attacker (Admin) injects payload into the database setting // The payload intends to execute 'id' command on the server // The array structure is maintained to bypass basic format checks, if any. $maliciousPayload = "array('key' => system('id'))"; // Step 2: A normal user visits /platform-config/list // The application loads the setting and passes it to the vulnerable function echo "Triggering the vulnerability via /platform-config/list...\n"; $result = decodeSettingArray($maliciousPayload); // If successful, the output of 'id' will be printed before the script ends ?>

影响范围

Chamilo LMS < 2.0.0-RC.3

防御指南

临时缓解措施
如果无法立即升级,建议暂时禁用`/platform-config/list`接口的访问权限,或通过Web应用防火墙(WAF)拦截针对该路径的恶意请求。同时,应加强管理员账户的安全防护(如启用MFA),防止攻击者通过提权漏洞获得后台访问权限,从而阻断攻击链的第一步。

参考链接

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