Критическая уязвимость в Fortinet FortiSIEM получила публичный proof-of-concept — рабочий пример атаки. Речь идёт о CVE-2026-106173 с оценкой 9,4 по CVSS: ошибка позволяет удалённо запускать команды без аутентификации.

Исследователи из Horizon3.ai показали, как атакующий может добраться до сервиса gRPC на TCP-порту 27918 и через специально сформированные пакеты выйти за пределы нужного каталога. В связке работают две проблемы: ошибка в проверке пути и внедрение нулевого байта, из-за которого система неверно обрабатывает имя файла.

Что произошло

Fortinet выпустила патчи для FortiSIEM 7.5.0, а исследователи вскоре опубликовали PoC для уязвимости CVE-2026-106173. По словам авторов разбора, ошибка затрагивает сценарий, где атакующий подключается к gRPC-сервису и обращается к обработчику QueryResultReq.

Дальше начинается главное: система использует пользовательский параметр query-id почти без проверки. Это позволяет сформировать путь так, чтобы записать файл не туда, куда рассчитывал разработчик.

Как работает атака

Ошибка относится к path traversal — когда злоумышленник подсовывает последовательности вроде ../, чтобы выбрать другой каталог. Но одной этой техники мало: FortiSIEM всё равно добавляет к имени файла собственный суффикс.

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

В публикации Horizon3.ai приводится пример с shell-скриптом, который раз в 60 секунд запускает cron-задача для проверки Redis. Перезапись такого файла превращает уязвимость записи в удалённое выполнение кода. Похожая логика уже встречалась в других цепочках атак — например, в разборе уязвимости в curl через HTTP/2 или в истории с Plex2Shell, где одна ошибка быстро превращалась в полный захват системы.

Кого это касается и чем грозит

Под ударом оказались администраторы, которые используют FortiSIEM 7.5.0 и не успели поставить обновление. FortiSIEM 7.6, по данным Fortinet, не затронута.

Опасность здесь двойная. Сначала атакующий получает возможность записать файл в чужой каталог, а затем может подменить скрипт или другой исполняемый объект. Если такой файл уже участвует в рутинных задачах системы, последствия наступают быстро и без заметных признаков на старте.

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

Что делать сейчас

Главное действие уже известно: проверьте версию FortiSIEM и установите обновление до 7.5.1 или выше, если у вас стоит ветка 7.5.0. Если вы используете другие сборки, сверьтесь с рекомендациями вендора и пересмотрите доступ к gRPC-сервису на порту 27918.

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

Если у вас есть удалённые сотрудники или подрядчики, стоит отдельно проверить, как они подключаются к внутренним сервисам и не видны ли служебные панели из открытого интернета. Для дополнительного уровня цифровой гигиены используйте инструмент для приватного канала связи как опцию для чувствительных сценариев, но не вместо обновлений и контроля доступа.

Практический чек-лист

  • Проверьте, стоит ли у вас FortiSIEM 7.5.0.
  • Обновите систему до 7.5.1 или выше, если это ваша ветка.
  • Ограничьте доступ к gRPC-сервису на TCP 27918 только доверенными узлами.
  • Посмотрите, не менялись ли скрипты и файлы, запускаемые по cron.
  • Сверьте журналы на предмет подозрительных запросов к QueryResultReq.
  • Убедитесь, что внутренняя панель мониторинга не доступна из открытой сети.
  • Проверьте, включены ли 2FA и актуальные пароли у администраторов.
Поделиться: