Chamilo LMS — это система управления обучением. До версий 1.11.38 и 2.0.0-RC.3 Chamilo LMS содержала уязвимость внедрения команд ОС в функцию перемещения файлов. Функция move() в fileManage.lib.php передает значения пути, управляемые пользователем, непосредственно в команды оболочки exec() без использования escapeshellarg().
Когда пользователь перемещает документ через document.php, параметр move_to POST, который проходит только через Security::remove_XSS() (фильтр только для HTML), объединяется непосредственно с командами оболочки, такими как exec("mv $source $target"). По умолчанию Chamilo разрешает всем прошедшим проверку подлинности пользователям создавать курсы (allow_users_to_create_courses = true). Любой пользователь, являющийся преподавателем курса (включая курсы, созданные самостоятельно), может перемещать документы, что делает эту уязвимость доступной для использования любым пользователем, прошедшим проверку подлинности.
Злоумышленник должен сначала разместить в файловой системе каталог с метасимволами оболочки в имени (это можно сделать с помощью импорта резервной копии курса), а затем переместить документ в этот каталог, чтобы инициировать выполнение произвольной команды от имени пользователя веб-сервера (www-data). Эта уязвимость исправлена в версиях 1.11.38 и 2.0.0-RC.3.
Показать оригинальное описание (EN)
Chamilo LMS is a learning management system. Prior to 1.11.38 and 2.0.0-RC.3, Chamilo LMS contains an OS Command Injection vulnerability in the file move function. The move() function in fileManage.lib.php passes user-controlled path values directly into exec() shell commands without using escapeshellarg(). When a user moves a document via document.php, the move_to POST parameter — which only passes through Security::remove_XSS() (an HTML-only filter) — is concatenated directly into shell commands such as exec("mv $source $target"). By default, Chamilo allows all authenticated users to create courses (allow_users_to_create_courses = true). Any user who is a teacher in a course (including self-created courses) can move documents, making this vulnerability exploitable by any authenticated user. The attacker must first place a directory with shell metacharacters in its name on the filesystem (achievable via Course Backup Import), then move a document into that directory to trigger arbitrary command execution as the web server user (www-data). This vulnerability is fixed in 1.11.38 and 2.0.0-RC.3.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 11
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Chamilo Chamilo_Lms
cpe:2.3:a:chamilo:chamilo_lms:*:*:*:*:*:*:*:*
|
— |
1.11.38
|
|
Chamilo Chamilo_Lms
cpe:2.3:a:chamilo:chamilo_lms:2.0.0:alpha1:*:*:*:*:*:*
|
— | — |
|
Chamilo Chamilo_Lms
cpe:2.3:a:chamilo:chamilo_lms:2.0.0:alpha2:*:*:*:*:*:*
|
— | — |
|
Chamilo Chamilo_Lms
cpe:2.3:a:chamilo:chamilo_lms:2.0.0:alpha3:*:*:*:*:*:*
|
— | — |
|
Chamilo Chamilo_Lms
cpe:2.3:a:chamilo:chamilo_lms:2.0.0:alpha4:*:*:*:*:*:*
|
— | — |
|
Chamilo Chamilo_Lms
cpe:2.3:a:chamilo:chamilo_lms:2.0.0:alpha5:*:*:*:*:*:*
|
— | — |
|
Chamilo Chamilo_Lms
cpe:2.3:a:chamilo:chamilo_lms:2.0.0:beta1:*:*:*:*:*:*
|
— | — |
|
Chamilo Chamilo_Lms
cpe:2.3:a:chamilo:chamilo_lms:2.0.0:beta2:*:*:*:*:*:*
|
— | — |
|
Chamilo Chamilo_Lms
cpe:2.3:a:chamilo:chamilo_lms:2.0.0:beta3:*:*:*:*:*:*
|
— | — |
|
Chamilo Chamilo_Lms
cpe:2.3:a:chamilo:chamilo_lms:2.0.0:rc1:*:*:*:*:*:*
|
— | — |
|
Chamilo Chamilo_Lms
cpe:2.3:a:chamilo:chamilo_lms:2.0.0:rc2:*:*:*:*:*:*
|
— | — |