Затронутые версии MISP позволяют неаутентифицированным или слабо ограниченным путям запросов выполнять постоянную работу без адекватных ограничений ввода или ограничения скорости. Конечная точка сброса пароля пользователя/забытого пароля приняла значение электронной почты, контролируемое злоумышленником, без предварительного установления разумного ограничения длины или проверки его формата. Затем это значение использовалось для создания записи в журнале аудита и постановки в очередь задания по сбросу пароля, в результате чего предоставленное значение сохранялось более одного раза для каждого запроса.
В коммите явно указано, что неограниченное поле запроса без аутентификации сохранялось дважды за вызов без регулирования. Исправление добавляет:
*
максимальная длина ввода электронного письма — 1024 байта;
*
проверка формата электронной почты перед постоянной работой;
*
бюджет запроса предварительной аутентификации для каждого источника;
*
Ответы HTTP 429 при превышении этого бюджета;
*
15-минутное время ожидания для электронных писем с запросами на доступ к API;
*
Обработка только POST и защита CSRF для конечной точки запроса доступа к API. Новый фильтр флуда специально предназначен для ограничения затрат на постоянное хранилище из-за анонимных запросов, таких как сброс пароля, регистрация и неудачные попытки аутентификации REST.
Затронутая версия: ≤2.5.45
Показать оригинальное описание (EN)
Affected versions of MISP permit unauthenticated or weakly constrained request paths to perform persistent work without adequate input bounds or rate limiting. The users/forgot password-reset endpoint accepted an attacker-controlled email value without first imposing a reasonable length bound or validating its format. That value was then used to create an audit log entry and queue a password-reset job, causing the supplied value to be persisted more than once per request. The commit explicitly states that an unbounded unauthenticated request field was stored twice per call with no throttle. The fix adds: * a maximum email input length of 1024 bytes; * email-format validation before persistent work; * a per-source pre-authentication request budget; * HTTP 429 responses when that budget is exceeded; * a 15-minute cooldown for API-access request emails; * POST-only handling and CSRF protection for the API-access request endpoint. The new flood filter is specifically intended to limit persistent storage costs from anonymous requests such as password resets, registrations, and failed REST authentication attempts. Version affected: ≤2.5.45
Характеристики атаки
Последствия
Строка CVSS v4.0