Критические уязвимости в Fluentd позволяют удалённо выполнять код и похищать учётные данные

Fluentd

Разработчики популярного сборщика логов Fluentd выпустили обновление 1.19.3, закрывающее несколько уязвимостей высокой и критической степени опасности. В их числе - проблема с возможностью удалённого выполнения кода без аутентификации, утечка конфиденциальных данных через мониторинговый API, отказ в обслуживании посредством сжатых запросов и подделка запросов на стороне сервера. Ошибки были подтверждены в бюллетенях безопасности GitHub и затрагивают все версии проекта до 1.19.2 включительно.

Детали уязвимостей

Наиболее серьёзная уязвимость получила идентификатор CVE-2026-44024 и оценку 10,0 балла по шкале CVSS - максимально возможную. Проблема кроется в механизме обработки плейсхолдера "${tag}", используемого при формировании путей к файлам в выходных плагинах. Fluentd не проверяет содержимое тегов на наличие последовательностей обхода каталогов - таких как "../". Если экземпляр сборщика принимает логи из ненадёжных источников и при этом применяет "${tag}" в настройках пути, злоумышленник может записать произвольный файл в любую директорию или перезаписать существующие. В сочетании с определёнными конфигурациями форматирования это позволяет внедрить в систему собственные плагины, изменить файлы конфигурации или критически важные файлы операционной системы. В результате атакующий получает полный контроль над узлом без каких-либо учётных данных.

Вторая серьёзная проблема - CVE-2026-44025 (оценка 7,5 балла). Она затрагивает плагин Monitor Agent ("in_monitor_agent"), который предоставляет REST API для получения метрик и состояния плагинов. В ответ на запросы к "/api/plugins.json" API непреднамеренно раскрывает внутренние переменные экземпляров всех загруженных плагинов. Если какой-либо плагин хранит в своих переменных пароли от баз данных, ключи API или токены от облачных сервисов, эти данные передаются в открытом виде любому, кто имеет сетевой доступ к порту мониторинга (по умолчанию - 24220). Аутентификация для доступа к информации не требуется. Потенциальный злоумышленник может использовать утёкшие учётные данные для перемещения по сети и дальнейших атак.

Третья уязвимость, CVE-2026-44160, позволяет реализовать отказ в обслуживании через механизм декомпрессии gzip в плагинах "in_http" и "in_forward". Fluentd корректно ограничивает размер входящего сжатого трафика через параметры "body_size_limit" и "chunk_size_limit", однако не устанавливает лимит на объём распакованных данных. Атакующий отправляет специально сформированный сжатый запрос, который после обработки расширяется до размеров, приводящих к исчерпанию оперативной памяти. Процесс сборщика логов завершается аварийно, что останавливает весь сбор и передачу логов на затронутом узле. Условия эксплуатации те же - доступ к сетевым портам Fluentd из ненадёжных сегментов.

Последняя из заявленных уязвимостей - CVE-2026-44161 (оценка 6,5 балла). Это подделка запросов на стороне сервера (SSRF) в плагине "out_http", который поддерживает использование плейсхолдеров (в том числе "${tag}") в параметре конечной точки. Если значение плейсхолдера происходит из ненадёжного ввода, атакующий может перенаправить исходящие HTTP-запросы Fluentd на произвольные внутренние адреса. Разработчики уточняют, что плагин использует только методы POST и PUT, поэтому прямое извлечение данных через метаданные облачного провайдера (например, AWS IMDS) технически затруднено, но SSRF остаётся вектором для доступа к внутренним сервисам, сбора информации или модернизации атак в корпоративной сети.

Помимо этих четырёх уязвимостей, в бюллетенях отмечена ранее раскрытая проблема CVE-2022-39379 - небезопасная десериализация, приводящая к выполнению кода при включении нестандартной опции "FLUENT_OJ_OPTION_MODE=object". Хотя эта конфигурация не является умолчательной, она всё ещё применяется в некоторых средах, что делает эксплуатацию возможной в старых развёртываниях.

Fluentd широко используется в облачных окружениях, кластерах Kubernetes и конвейерах логирования. Эксперты рекомендуют немедленно обновить сборщик до версии 1.19.3. В качестве временных мер защиты следует ограничить сетевой доступ к портам Fluentd (24220, 24224, 9880), привязать мониторинг только к адресу 127.0.0.1, исключить использование плейсхолдера "${tag}" в путях к файлам, если теги поступают извне, и запускать процесс с минимально необходимыми привилегиями.

Ссылки

Комментарии: 0