Переполнение буфера в IBM MQ и обход ограничений в Langflow OSS позволяют выполнить код на сервере

IBM i

IBM закрыла 12 уязвимостей в IBM MQ, IBM MQ Appliance и открытом фреймворке Langflow OSS. Четыре из них позволяют злоумышленнику выполнить произвольный код или команды удалённо, без учётной записи и без участия пользователя. Одна ошибка в IBM MQ получила максимальные 10,0 балла по шкале CVSS. Ещё три в Langflow OSS оценены в 9,8. Эти продукты работают в банках, промышленности, логистике и госсекторе, поэтому обновление касается не только разработчиков.

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

Самая тяжёлая уязвимость зарегистрирована как CVE-2026-10747. Это переполнение буфера в куче - участке памяти, куда программа складывает данные переменной длины, когда заранее неизвестен их размер. Сбой возникает при обработке протокольных сообщений менеджера очередей, то есть до проверки подлинности. Злоумышленнику достаточно сетевого доступа к порту прослушивания, чтобы отправить специально сформированный пакет. Дальше возможны два исхода: отказ в обслуживании либо выполнение произвольного кода с правами процесса MQ. Ни логин, ни действия со стороны легитимного пользователя не требуются. Сложность атаки IBM оценивает как низкую, а влияние на конфиденциальность, целостность и доступность данных как высокое.

Langflow - среда для сборки приложений и агентов на основе больших языковых моделей. Её разворачивают внутри корпоративных сетей, чтобы связать модель с внутренними сервисами. Три уязвимости с оценкой 9,8 бьют ровно по этому сценарию. Одна описывает внедрение команд операционной системы: посторонний отправляет данные, которые сервер принимает за часть рабочего процесса и исполняет. Другая связана с некорректной проверкой прав на публично доступных конечных точках MCP (Model Context Protocol, протокол подключения моделей к внешним инструментам). Через них злоумышленник без учётной записи выполняет код и получает доступ к чужим сессиям чата, включая возможность их изменить. Третья - внедрение кода на этапе построения графа вычислений. Каждый из этих трёх случаев не требует входа в систему.

Остальные восемь уязвимостей в Langflow закрыты для посторонних, но открыты любому зарегистрированному пользователю. Суммарно они дают обычной учётной записи те же возможности на сервере, что и администратору. Сканер безопасности, который должен отсекать опасные операции в пользовательских компонентах, пропускает их. Причина - неполный список запретов и логическая ошибка: присваивание значения в теле класса проходит проверку, хотя ссылается на опасную функцию. Ещё одна ветка исполнения передаёт введённые извне данные в динамическое вычисление выражения без очистки. Переменная окружения, управляющая загрузкой расширений OpenSSL, не попала в список запрещённых, поэтому через неё в процесс попадает сторонний код. Компонент, запускающий внешние программы через стандартные потоки ввода-вывода, обходит настройки, запрещающие исполнение кода на сервере. Те же настройки не применяются к обычным путям создания и запуска сохранённых сценариев: пользователь сохраняет свой компонент с произвольным исходным текстом, а затем запускает его. Отдельная уязвимость связана с именем сценария - специальные символы в нём не обезвреживаются.

Менеджер очередей MQ - промежуточное ПО для обмена сообщениями. Через него проходят платёжные поручения, данные о складских остатках, телеметрия с производственных линий. Захват узла с правами процесса открывает доступ к этим потокам и к учётным данным, которые MQ хранит для подключения к смежным системам, включая базы данных и шины интеграции. Ошибка, срабатывающая до аутентификации, обнуляет защиту логинами и списками доступа: фильтры просто не успевают включиться. С Langflow картина похожая. Инструмент ставят между языковой моделью и внутренними интерфейсами приложений, поэтому он видит больше, чем обычный веб-сервис. Успешная эксплуатация ведёт к чтению переменных окружения с паролями, изменению файлов и перемещению по сети к другим узлам, доступным с сервера. Об использовании этих уязвимостей в реальных атаках IBM не сообщает.

Обходных мер нет ни для одного продукта из списка. IBM выпустила накопительные обновления для всех поддерживаемых ветвей MQ: 9.1, 9.2, 9.3 и 9.4. Пользователям сборок с непрерывной поставкой предлагают перейти на версию 10.0.0.5. Langflow OSS обновляют до 1.11.6, уязвимыми остаются версии с 1.0.0 по 1.11.5. В список затронутых попал и компонент сервера в составе IBM MQ Appliance. Приоритет стоит отдать системам, чьи порты прослушивания доступны из интернета или из недоверенных сегментов сети, а также развёртываниям Langflow с публичными ссылками на проекты.

Инструменты для работы с языковыми моделями перестали быть лабораторной забавой. Они стоят в производственном контуре, хранят ключи доступа и умеют запускать код - и наследуют весь набор классических ошибок веб-платформ. Сканеры безопасности, списки запретов и проверки прав писались под задачи, где пользователь не пишет код сам. Langflow эту границу стирает, поэтому одна недосмотренная ветка исполнения превращается в полный контроль над сервером. История с MQ напоминает о другом: даже зрелый продукт с многолетней историей может получить максимальную оценку из-за ошибки в разборе сетевых сообщений, и единственной защитой остаётся своевременная установка обновлений.

Ссылки

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