Ошибки в проверке прав в Moodle раскрывают профили учащихся и допускают подделку импорта оценок

Moodle

Девятого сентября 2026 года в Moodle закрыли десять уязвимостей. Они затрагивают все поддерживаемые ветки платформы: 4.5, 5.0, 5.1 и 5.2. Две проблемы отнесены к серьёзным. Одна открывает доступ к чужим профилям, вторая позволяет подделать импорт оценок. Moodle служит основной учебной платформой во множестве университетов, школ и корпоративных учебных центров. Поэтому риски касаются организаций с тысячами учётных записей.

Детали уязвимостей

Отдельного внимания заслуживает первая из серьёзных уязвимостей. Она связана со службой оценок. Разработчики неверно проверили права доступа в одном из её обработчиков. Из-за этого учащийся мог получить сведения о профилях других учащихся того же курса. Обычно такие данные закрыты настройками приватности. В открытый доступ попадали имена, фотографии и дополнительные поля профиля. Уязвимость обнаружил исследователь под псевдонимом Itamarperetz2c7cc5.

Вторая серьёзная проблема касается импорта оценок из файлов формата XML. Эта функция позволяет преподавателю загружать ведомости и перезаписывать уже выставленные баллы. В обработчике отсутствовал одноразовый токен, подтверждающий намерение пользователя. Отсюда возникает риск подделки межсайтового запроса, известной как CSRF (чужая страница заставляет браузер авторизованного пользователя выполнить действие без его ведома). Злоумышленнику достаточно заманить преподавателя на подготовленный сайт. Тогда браузер сам отправит запрос на импорт оценок. Последствия затрагивают не только электронный журнал. Оценки влияют на стипендии, переводы и допуск к экзаменам. Нашёл эту уязвимость Винсент Шнайдер.

Остальные восемь проблем получили низкий уровень риска. В шаблонах форумных сообщений не хватало экранирования. Из-за этого возникал риск межсайтового скриптинга, то есть внедрения исполняемого кода в чужую страницу. Отдельный случай касается ссылки сброса пароля. Если неаутентифицированного пользователя убедить её открыть, скрипт может сработать. Уже вошедшие в систему пользователи под угрозой не находились.

Несколько уязвимостей связаны с проверкой прав. Служба генерации изображений с помощью искусственного интеллекта пускала к себе пользователей без нужного разрешения. Пересчёт штрафных баллов также запускался без соответствующих полномочий. Фильтры в списке пользователей позволяли руководителям отбирать людей по полям профиля, которые им не разрешено видеть. Кстати, ветку 4.5 пересчёт штрафных баллов не затрагивает, а ошибка с группами касается только 5.1 и 5.2.

Две уязвимости связаны с управлением учебными группами и курсами. При записи учащегося в группу система не проверяла принадлежность группы к курсу. В итоге преподаватель мог добавить людей в группы курсов, к которым не имел доступа. Кроме того, страница ручного управления записью на курс оставалась доступной напрямую после отключения соответствующего модуля. Правда, для этого всё равно требовались права на работу с этой страницей.

Ещё одна уязвимость нашлась в конструкторе отчётов. Там недостаточно тщательно проверяли имя класса аудитории. Из-за этого появлялась возможность создать произвольный программный класс. Технически это открывает путь к выполнению чужого кода в системе. Разработчики оценили риск как низкий.

CVE-идентификаторы для всех десяти уязвимостей пока не присвоены. Сведений об эксплуатации в реальных атаках нет. Это смягчает картину, но не отменяет необходимости обновиться. Публичные платформы часто сканируют автоматическими средствами. Через считаные дни после раскрытия уязвимостей появляются попытки их использования.

Исправления вышли в версиях 4.5.13, 5.0.9, 5.1.6 и 5.2.2. Организациям стоит обновить платформу до этих сборок. Если обновление невозможно сразу, ограничьте доступ к импорту оценок. Полезно также проверить журналы на подозрительные загрузки ведомостей. Обратите внимание на учётные записи с широкими правами. Метки времени и адреса источников помогают отличить обычную работу от чужой активности.

Администраторам стоит проверить, какие модули отключены. Прямой доступ к страницам отключённых модулей встречается часто. Здесь эту недоработку устранили. Полезно также пересмотреть настройки видимости полей профиля. Ошибка в фильтрах списка пользователей обходила как раз такие ограничения. Поэтому настройки приватности нужно проверять отдельно от обновления.

Общая картина показывает смещение проблем в сторону контроля доступа. Ошибки в проверке прав встречаются чаще, чем переполнение буфера или внедрение команд. Причина проста. Крупные платформы обрастают ролями, разрешениями и отдельными службами. Каждая новая точка входа требует собственной проверки. Пропуск хотя бы одной открывает данные или функции для посторонних. Для учебных заведений это означает, что обновление нельзя откладывать до каникул. Данные учащихся защищены ровно настолько, насколько актуальна версия платформы.

Ссылки

Комментарии: 0