Критическая уязвимость FortiSIEM с оценкой CVSS 9,4 получила публичный proof-of-concept: атакующему не требуется учётная запись, чтобы через доступный gRPC-сервис добиться выполнения команд на сервере. Для российских компаний, использующих FortiSIEM в SOC и для централизованного сбора событий, это не теоретическая история про «когда-нибудь»: обновление нужно планировать раньше, чем сканеры начнут искать TCP-порт 27918 в интернете.
Проблема зарегистрирована как CVE-2026-106173 и затрагивает FortiSIEM 7.5.0. Fortinet выпустила исправление на прошлой неделе; безопасный путь для этой ветки — обновиться до версии 7.5.1 или новее. Ветка FortiSIEM 7.6, по данным вендора, не подвержена дефекту. О публикации PoC сообщает The Hacker News со ссылкой на исследователей Horizon3.ai.
Суть бага — в обработчике gRPC-запросов QueryResultReq. Он получает метаданные от клиента и использует параметр query-id при построении пути к файлу, не проверяя его достаточно строго. В нормальном сценарии сервис сохраняет результат запроса в рабочем каталоге. Но специально сформированное значение с последовательностями перехода к родительским каталогам позволяет выйти за пределы этого каталога и записать данные в другом месте файловой системы.
Одного обхода каталогов для полноценной RCE обычно недостаточно: приложение само дописывает к имени файла служебный суффикс, включающий счётчик, который контролирует сервер. Исследователи нашли способ обойти и это ограничение. Они используют нулевой байт в значении query-id; при передаче пути в функцию открытия файла всё, что следует после такого символа, воспринимается как хвост строки и не влияет на фактическое имя. В результате можно указать точный путь к существующему файлу и перезаписать его.
В демонстрационном сценарии Horizon3.ai фигурирует скрипт проверки работоспособности Redis redishb.sh в каталоге /opt/charting. Он запускается cron каждую минуту. Если заменить содержимое такого скрипта, код атакующего выполнится при ближайшем запуске задачи. Исследователь Zach Hanley, Chief Attack Engineer Horizon3.ai, отдельно подчёркивает важную деталь: перезапись существующего файла сохраняет его владельца и права доступа. Для атакующего это удобнее, чем создавать новый исполняемый файл и пытаться отдельно решить вопрос с разрешениями.
Есть и второй вариант атаки — с двумя запросами для создания файла с точно заданным именем. Но с точки зрения защитника оба пути сводятся к одной неприятной комбинации: внешний или внутренний злоумышленник без аутентификации получает примитив произвольной записи в файловую систему, а затем превращает его в выполнение кода. Публичный PoC заметно снижает порог входа для массовых попыток эксплуатации: теперь злоумышленникам не нужно самостоятельно разбирать протокол gRPC, HTTP/2 и HPACK, чтобы проверить доступные инсталляции.
Для команд эксплуатации первоочередная задача — инвентаризировать все FortiSIEM 7.5.0, включая забытые стенды, резервные площадки и экземпляры, доступные через VPN или сегменты администрирования. Затем стоит обновить их до 7.5.1 или более новой версии по штатной процедуре. Если обновление нельзя провести немедленно, разумная временная мера — ограничить доступ к TCP 27918 только доверенными сетями и хостами. Это не замена патчу: доступ из «внутренней» сети давно не равен отсутствию риска, особенно для платформы, которая хранит и обрабатывает телеметрию безопасности.
Отдельно полезно проверить журналы сетевых устройств и самого FortiSIEM на обращения к gRPC-порту, необычные значения параметров запросов и признаки записи или изменения файлов в чувствительных каталогах. После установки обновления стоит убедиться, что сервис действительно работает на исправленной версии, а не просто что пакет оказался в репозитории автоматизации. В подобных инцидентах разрыв между «патч доступен» и «патч применён на всех узлах» часто оказывается самым уязвимым местом.
Эта уязвимость FortiSIEM хорошо иллюстрирует старый, но по-прежнему дорогой класс ошибок: небезопасная работа с путями превращает сервисную функцию в канал захвата сервера, если рядом находится планировщик, доверяющий изменяемому файлу. Публичный PoC означает, что окно для спокойного планирования работ уже закрывается; технические детали исследования доступны у .


