В современном мире кибербезопасности регулярно появляются новые уязвимости, которые представляют серьёзную опасность для корпоративных сетей и инфраструктур. Одной из недавних и очень значимых стала уязвимость CVE-2025-25257, обнаруженная в Fortinet FortiWeb Fabric Connector — компоненте, который играет ключевую роль в обеспечении безопасности веб-приложений. Эта уязвимость открывает дверь для неавторизованных атак с использованием SQL-инъекции и, в конечном итоге, позволяет получить удалённое выполнение кода (RCE), что является серьезным нарушением безопасности. Разбор данной проблемы — важное событие для специалистов по безопасности и системных администраторов, которые используют решения Fortinet в своих организациях. Fortinet FortiWeb Fabric Connector — это программный компонент, который служит связующим звеном между идентификационными модулями и другими продуктами Fortinet, такими как FortiGate или FortiManager.
Его основная задача — обеспечение динамического обновления политик безопасности в режиме реального времени на основе метаданных из разных источников, включая облачные сервисы AWS. Принцип работы FortiWeb Fabric Connector можно сравнить с посредником, который собирает информацию из различных систем и интегрирует её в веб-фаервол FortiWeb для интеллектуального принятия решений об угрозах. Однако, анализ исходного кода и разница между версиями FortiWeb показали наличие критической уязвимости, связанной с неправильной обработкой пользовательских данных в HTTP-заголовке Authorization. Конкретно, функция get_fabric_user_by_token(), которая вызывается для проверки подлинности пользователя посредством токена, использует небезопасный вызов snprintf для вставки токена напрямую в SQL-запрос. Такой подход нарушает принцип безопасной кодировки и нейтрализации специальных символов, открывая возможность для классической SQL-инъекции.
Уязвимость проявляется следующим образом: злоумышленник может отправить вредоносный HTTP-запрос с заголовком Authorization, содержащим специально сформированный токен. Этот токен, без надлежащей обработки, внедряется в SQL-запрос, что даёт возможность выполнить произвольные SQL-команды внутри базы данных FortiWeb. Отсутствие аутентификации для доступа к данной функциональности делает атаку особенно опасной — любой внешний участник может попытаться получить доступ к системе и запустить вредоносный код. Серьёзность данного SQL-инъекционного уязвимого места подтверждается успешной демонстрацией обхода защитного механизма разбора заголовка Authorization. Изначально приложение применяет функцию __isoc23_sscanf с форматом "Bearer %128s", которая считывает только строку без пробелов длиной до 128 символов.
Это ограничивает внедрение классической SQL-инъекции с пробелами и раздельными командами. Тем не менее, исследователи нашли способы обхода, применяя комментарии MySQL в виде //, которые не содержат пробелов, но выполняют функцию разделения SQL-команд. Такой приём позволяет внедрить сложные SQL-конструкции, включая задержки (например, sleep), что подтверждает факт успешного проведения инъекции. Данная техника стала классикой обхода анализа и фильтрации пользовательских данных в SQL и применяется для увеличения времени ответа сервера, что используется для идентификации уязвимости во время тестирования. После подтверждения возможности проведения SQL-инъекции следующий логический шаг — эскалация привилегий и получение удалённого выполнения кода.
Исторически одним из мощных инструментов подобных атак является использование команды INTO OUTFILE MySQL. Она позволяет записать произвольное содержимое в файл на файловой системе, используя права пользователя, под которым работает сервер базы данных. В контексте FortiWeb удачливые исследователи обнаружили, что можно записать вредоносный файл в директорию с веб-скриптами CGI, которые исполняет веб-сервер Apache. В частности, каталог /migadmin/cgi-bin/* содержит скрипты, выполнением которых можно управлять, просто наведясь на URL в браузере. Эта возможность даёт прямой путь к исполнению вредоносного кода на сервере — классическая ситуация удалённого выполнения кода (RCE).
Однако, при попытке непосредственной записи веб-оболочки (webshell) столкнулись с ограничением, связанным с отсутствием права на установку флага исполняемого файла, а также невозможностью перезаписать уже существующие файлы через MySQL INTO OUTFILE, что усложняет эксплуатацию уязвимости. Не оказавшись отчаиваться, исследователи углубились в анализ и нашли интересный файловый объект — Python-скрипт ml-draw.py, расположенный в каталоге CGI, который запускается интерпретатором Python. Этот факт открывает новую возможность для малвари — известный прием использования возможностей Python в обход ограничений MySQL. Дело в том, что при запуске Python действует механизм site-specific configuration hooks, который позволяет автоматически импортировать и выполнять код из файлов с расширением .
pth, расположенных в каталоге site-packages. При записи такого файла с вредоносным кодом можно добиться того, что при загрузке Python-скрипта этот код будет выполнен, не требуя установки атрибута исполняемого файла, что в данном сценарии является большим преимуществом. Использование механизма .pth для эксплуатации уязвимости — изящный и современный способ повышения уровня атаки с SQL-инъекции до RCE. Тем не менее, накладывающиеся ограничения на длину заголовка Authorization (128 символов) и необходимость обхода пробелов в полезной нагрузке сделали эксперимент сложным.
Решением стало поэтапное формирование полезной нагрузки в базе данных и последовательная запись необходимых частей в отдельные файлы, либо использование относительных путей для сокращения длины записываемых путей. Общая последовательность атаки выглядит так: злоумышленник формирует соответствующий HTTP-запрос с заголовком Authorization, в который внедряет специально подобранный SQL-пейлоад, используя возможности обхода фильтров через MySQL комментарии и UNHEX-функции для кодирования кодa. Затем происходит запись вредоносных .pth файлов в каталог site-packages с последующим вызовом уязвимого Python-скрипта, что инициирует выполнение вредоносного кода на уровне системы. Для пользователей и организаций, применяющих Fortinet FortiWeb, это сигнал тревоги.
Крайне рекомендуется провести обновление системы на исправленные версии, где разработчики Fortinet заменили уязвимые вызовы на подготовленные выражения (prepared statements), которые корректно обрабатывают внешний ввод и полностью устраняют возможность SQL-инъекций данного вида. Затронуты версии начиная с 7.0.0 и заканчивая 7.6.
3, а исправленная версия начинается с 7.6.4. Защита от таких уязвимостей требует комплексного подхода. Помимо обновления программного обеспечения, следует уделять внимание контролю доступа, внедрению Web Application Firewall (WAF) с продвинутыми механизмами обнаружения инъекций, теневому мониторингу сетевого трафика и регулярному аудиту безопасности.
Особенное внимание стоит уделить обработке всех внешних данных, особенно таких, которые используются для аутентификации и формирования внутренних запросов. Опыт, полученный из анализа CVE-2025-25257, подтверждает, что уязвимости SQL-инъекции по-прежнему остаются одним из наиболее опасных и часто встречающихся видов уязвимостей. Они требуют постоянного совершенствования процессов разработки ПО, включая проверку на этапах код-ревью, тестирования и непрерывной интеграции. Использование современных средств предотвращения атак SQL-инъекций, таких как ORM, параметрические запросы и шаблоны безопасности, должно войти в привычку для всех разработчиков. В итоге, CVE-2025-25257 демонстрирует, как могут быть реализованы сложные сценарии эксплуатации, сочетающие традиционные методы атаки с современными трюками, например, использованием расширенных возможностей интерпретируемых языков программирования.
Она также подчеркивает важность своевременных обновлений и профилактических мер для сохранения безопасности информационных систем. Киберугрозы эволюционируют, и вместе с ними должны совершенствоваться инструменты защиты. Уязвимость в Fortinet FortiWeb Fabric Connector — это ещё одно напоминание о том, что безопасность — это не статичное состояние, а динамический, постоянный процесс, требующий от специалистов по безопасности безустанного внимания и готовности к быстрому реагированию.