Перейти к содержимому
Noroxi
CVE-2017-2641· NVD / CVE Program· CNA redhat

In Moodle 2.x and 3.x, SQL injection can occur via user preferences.

КритическаяCVSS 9.8 · v3.0—Proof of concept Есть исправление
Опубликовано
26 мар. 2017 г.
Обновлено
16 июн. 2026 г.
EPSS
14,5 % · 97-й процентиль
Следить за этой CVE

Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.

Инструменты для отчёта

JSON

Оценка срочности

43

В плане

Включите в обычный цикл установки исправлений.

CVSS
39 / 40 · 9.8 / 10
CISA KEV
0 / 30 · Нет в списке
EPSS
4 / 30 · 14,5 %

Затронутые системы

ВендорПродукт
moodlemoodle

Затронутые версии

Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.

  • moodle moodle2.7.0
  • moodle moodle2.7.1
  • moodle moodle2.7.10
  • moodle moodle2.7.11
  • moodle moodle2.7.12
  • moodle moodle2.7.13
  • moodle moodle2.7.14
  • moodle moodle2.7.15
  • moodle moodle2.7.16
  • moodle moodle2.7.17
  • moodle moodle2.7.18
  • moodle moodle2.7.2
  • moodle moodle2.7.3
  • moodle moodle2.7.4
  • moodle moodle2.7.5
  • moodle moodle2.7.6
  • moodle moodle2.7.7
  • moodle moodle2.7.8
  • moodle moodle2.7.9
  • moodle moodle3.0.0

Версии, заявленные вендором

Диапазоны затронутых версий, заявленные назначающей организацией (redhat). Не зависят от анализа CPE в NVD и обычно опережают его.

  • n/a Moodle 2.x and 3.x

    • Moodle 2.x and 3.xзатронута

Затронутые пакеты

Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.

ЭкосистемаПакетЗатронутый диапазонИсправление
Packagistmoodle/moodleс 2.7 · до 2.7.192.7.19
Packagistmoodle/moodleс 3.0 · до 3.0.93.0.9
Packagistmoodle/moodleс 3.1 · до 3.1.53.1.5
Packagistmoodle/moodleс 3.2 · до 3.2.23.2.2

Тот же продукт

moodle: все записи

Другие записи с наивысшей оценкой для того же основного продукта.

  • CVE-2024-43425Moodle: remote code execution via calculated question types
    58В плане
  • CVE-2021-36393In Moodle, an SQL injection risk was identified in the library fetching a user's recent courses.
    55В плане
  • CVE-2022-0332A flaw was found in Moodle in versions 3.11 to 3.11.4.
    52В плане
  • CVE-2022-35650The vulnerability was found in Moodle, occurs due to input validation error when importing lesson questions.
    45В плане
  • CVE-2018-1133An issue was discovered in Moodle 3.x.
    45В плане
  • CVE-2021-21809A command execution vulnerability exists in the default legacy spellchecker plugin in Moodle 3.10.
    43В плане

Исправление

На какую версию обновиться

Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.

Продукт / пакетИсправленная версияИсточник
Packagist:moodle/moodle2.7.19Реестр пакетов (OSV)
Packagist:moodle/moodle3.0.9Реестр пакетов (OSV)
Packagist:moodle/moodle3.1.5Реестр пакетов (OSV)
Packagist:moodle/moodle3.2.2Реестр пакетов (OSV)

Статус эксплойта

Есть proof of concept

Существует публичный PoC или сигнатура обнаружения. Знание об эксплойте доступно; не откладывайте установку исправлений.

Доказательство

  • Запись Exploit-DB ×1

Noroxi не размещает код эксплойтов и не даёт на них ссылок. Показываются имена модулей Metasploit и идентификаторы шаблонов Nuclei (имена, не код); записи Exploit-DB и репозитории PoC даются только числом.

Публичные свидетельства эксплойта
ИсточникТипДата
Запись Exploit-DBwebapps2017-04-06

Контекст для исследователя

Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.

Хронология

От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.

  1. Публикация
  2. Первый PoC+10 дн.
  3. Сегодня30 сент. 2026 г.+3475 дн.
EPSS за 120 дней

Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).

Ссылки на патчи и коммиты

Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.

Среди источников нет ссылок на коммит или PR.

Нашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.

В записи CNA нет авторов.

Кандидаты в варианты

Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.

Ночной расчёт связей ничего не нашёл.

Кандидаты в цепочки

Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.

—

Охват bug bounty

Известной публичной программы нет.

Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).

Технические детали

Условия атаки

  • Может быть вызвана любым, у кого есть доступ через интернет.
  • Учётная запись или пароль не требуются.
  • Действия пользователя не требуются.
  • Особые условия не требуются; воспроизводится стабильно.

В случае успеха

Конфиденциальность
высокое · данные могут быть прочитаны
Целостность
высокое · данные или конфигурация могут быть изменены
Доступность
высокое · работа сервиса может быть нарушена
Вектор атаки
Сеть
Сложность атаки
Низкая
Требуемые привилегии
Не требуются
Взаимодействие с пользователем
Не требуется
Область действия
Не изменяется
Влияние на конфиденциальность
Высокое
Влияние на целостность
Высокое
Влияние на доступность
Высокое

Вектор CVSS

CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

nvd-primary

Первопричина

Текст запроса формируется конкатенацией с пользовательским вводом. СУБД не может определить, где заканчиваются данные и начинается команда.

Ошибка в коде

Весь класс CWE-89

Показательный пример этого класса уязвимостей. Это не исходный код вендора; показан ошибочный шаблон и его исправление.

Уязвимый код

ts
const owner = req.query.owner;const rows = await db.query(  "SELECT * FROM files WHERE owner = '" + owner + "'");

Исправленный код

ts
const owner = req.query.owner;const rows = await db.query(  "SELECT * FROM files WHERE owner = $1",  [owner]);

Анализ Noroxi

Анализа Noroxi для этой записи пока нет

Мы не пишем анализ вручную для всех 385 000+ уязвимостей; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.

Мы используем этот продукт, нужна помощь

Журнал изменений

  1. Исправление✗ → ✓

Для отслеживаемых записей эти изменения приходят и как уведомления. →

Источники

Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.

Все записи