Платформа MISP (Malware Information Sharing Platform, среда обмена данными об угрозах) получила исправления для девятнадцати уязвимостей. Затронуты сборки старше 2.5.45, а часть проблем остаётся и в самой 2.5.45. Систему используют группы реагирования на инциденты, центры мониторинга и государственные ведомства. Внутри такой базы лежат сведения о заражениях, инфраструктуре атакующих и источниках разведданных, которые участники обмена не публикуют открыто. Успешная атака оборачивается утечкой этих сведений, порчей записей или остановкой обмена.
Детали уязвимостей
Наибольший риск связан со входом в систему. Модули аутентификации через каталог LDAP (служба каталогов, хранящая учётные записи) и сервер одноразовых паролей LinOTP заменили штатный механизм платформы, но не перенесли из него проверку введённых значений (CVE-2026-85216, оценка 9.5 из 10). Пустая строка вместо пароля доходила до службы каталогов. Если каталог принимает анонимные привязки, платформа считала вошедшим реального сотрудника, чей адрес электронной почты знал атакующий. В ветке LinOTP значения неверного типа не отбраковывались, а при смешанной схеме входа пустой пароль сверялся с локальным хешем. Учётные записи, заведённые через каталог, могли получить хеш от пустого пароля, и позже через резервный механизм в них попадал посторонний. Все три сценария приводят к одному: удалённый человек без учётной записи получает права выбранного пользователя, вплоть до административных.
Второй по значимости стала уязвимость в обработчике, который удаляет пустые события (CVE-2026-85236, 8.8). Он принимал запросы методом GET, хотя операция необратимо меняет данные. Защита от подделки межсайтовых запросов не проверяет запросы без тела, поэтому хватало одной ссылки, открытой в браузере авторизованного сотрудника. Достаточно вставленного изображения или другого ресурса, который браузер запрашивает сам. Удалённые события не попадали в список заблокированных, и повторная синхронизация возвращала их обратно. Восстановить записи штатными средствами нельзя.
Часть уязвимостей касается второго фактора входа. Проверка одноразового пароля из письма не ограничивала число попыток: значение оставалось действительным, пока его не подтвердят, поэтому перебор повышал шансы угадать код (CVE-2026-85237, 8.6). Хуже того, код привязан к пользователю, а не к отдельной попытке входа, и параллельные сессии могли подбирать его одновременно. Другой метод аутентификации записывал личность вошедшего в уже существующую сессию, не меняя её идентификатор. Тот, кто заранее навязал жертве известный ему идентификатор, после входа получал доступ к её сессии (CVE-2026-85238, 7.6).
Отдельная группа уязвимостей связана с доверием к данным, попадающим в интерфейс. Параметры фильтрации событий подставлялись в разметку страницы без экранирования, что давало отражённый межсайтовый скриптинг (CVE-2026-85227, 6.1). В настройках кнопочного виджета панели управления разрешалось сохранить ссылку со служебной схемой javascript, которую браузер исполнял как скрипт (CVE-2026-86440, CVE-2026-85230). Проверка проводилась только при отрисовке виджета, а не при сохранении, поэтому вредоносное значение ждало подходящего момента. Похожая ошибка нашлась в поле домашней страницы пользователя: адрес, начинающийся с двух косых черт, проходил проверку и уводил браузер на чужой сайт после входа (CVE-2026-86351).
Самая многочисленная группа касается проверки прав. Движок корреляции сопоставлял атрибуты по совпадению значений и не учитывал ограничения распространения, группы обмена и принадлежность организации. Пользователь с минимальными правами получал подсказки о событиях, закрытых от него (CVE-2026-85226, CVE-2026-86342). Просмотр криптографических ключей не проверял видимость родительского события, поэтому ключ подписи защищённого события мог запросить любой вошедший (CVE-2026-86408, 7.1). Виджеты панели управления и список шаблонов обходили режим скрытия справочника организаций и раскрывали адреса электронной почты владельцев шаблонов (CVE-2026-86417, CVE-2026-86418, CVE-2026-86441). Загрузку файлов шаблонов мог вызвать пользователь с ролью только для чтения: правило доступа вместо требования права на добавление содержало знак подстановки, что позволяло забить диск сервера (CVE-2026-86347, 7.1). Описание события тоже проверялось поверхностно, и одна некорректная запись ломала выдачу списка шаблонов для всех пользователей (CVE-2026-85239, 7.1).
Свою долю внесли уязвимости в работе с внешними соединениями. Клиент для защищённого протокола HTTPS не включал проверку сертификата удалённой стороны, потому что соответствующее свойство оставалось незаполненным. Служба синхронизации принимала самоподписанные и чужие сертификаты, что открывало атаку "человек посередине" и позволяло читать и подменять трафик между платформами (CVE-2026-85221, 7.6). Загрузка лент и поиск серверов TAXII (протокол обмена данными об угрозах) недостаточно проверяли адрес назначения. Перенаправление уводило запрос во внутреннюю сеть, а заголовки с учётными данными ленты пересылались на чужой хост (CVE-2026-86419). Наконец, обработчики писем, доступные без входа в систему, не ограничивали длину и количество принимаемых значений. Восстановление пароля и заявка на доступ к программному интерфейсу заносили произвольный текст в журнал и очередь заданий, чем анонимный поток запросов истощал ресурсы (CVE-2026-86452, 8.7).
Все перечисленные уязвимости закрыты в версии 2.5.45 и более поздних сборках. Сведений о применении этих уязвимостей в реальных атаках пока нет. Обновление стоит установить без промедления: платформа хранит сведения, ради которых злоумышленники готовы искать обходные пути. Администраторам полезно проверить журналы входов на пустые пароли и необычные попытки, а заодно убедиться, что каталог отключил анонимные привязки.
Ссылки
- https://vulnerability.circl.lu/vuln/CVE-2026-85216
- https://vulnerability.circl.lu/vuln/CVE-2026-85221
- https://vulnerability.circl.lu/vuln/CVE-2026-85226
- https://vulnerability.circl.lu/vuln/CVE-2026-85227
- https://vulnerability.circl.lu/vuln/CVE-2026-85230
- https://vulnerability.circl.lu/vuln/CVE-2026-85236
- https://vulnerability.circl.lu/vuln/CVE-2026-85237
- https://vulnerability.circl.lu/vuln/CVE-2026-85238
- https://vulnerability.circl.lu/vuln/CVE-2026-85239
- https://vulnerability.circl.lu/vuln/CVE-2026-86342
- https://vulnerability.circl.lu/vuln/CVE-2026-86347
- https://vulnerability.circl.lu/vuln/CVE-2026-86351
- https://vulnerability.circl.lu/vuln/CVE-2026-86408
- https://vulnerability.circl.lu/vuln/CVE-2026-86417
- https://vulnerability.circl.lu/vuln/CVE-2026-86418
- https://vulnerability.circl.lu/vuln/CVE-2026-86419
- https://vulnerability.circl.lu/vuln/CVE-2026-86440
- https://vulnerability.circl.lu/vuln/CVE-2026-86441
- https://vulnerability.circl.lu/vuln/CVE-2026-86452