Несколько уязвимостей в компонентах Apache Camel позволяют выполнить код на сервере, обойти проверку подлинности и получить доступ к учётным данным и файлам. Apache Camel - набор компонентов для обмена сообщениями между приложениями; часть проблем затрагивает Camel K, оператор для запуска маршрутов в Kubernetes. Возможность атаки зависит от развёрнутых компонентов, настройки маршрутов и доступа злоумышленника к сообщениям или инфраструктуре. Поэтому каждое уведомление требует отдельной проверки и не описывает общую атаку на все установки Camel.
Как проявляются уязвимости в разных компонентах Camel
Оценки по шкале CVSS (общая система оценки уязвимостей) в уведомлениях нет: Apache указывает уровни Critical и High по собственной классификации. Самый прямой риск даёт десериализация, то есть восстановление объектов программы из присланных ей данных. Если приложение разбирает такие данные от злоумышленника, он может подставить объект, который выполнит его код при сборке. В компоненте Spring Redis полезную нагрузку из канала разбирает сериализатор по умолчанию, без фильтра. Поэтому тот, кто может опубликовать сообщение в канал, получает исполнение кода внутри процесса Camel.
Уязвимость в Spring Redis получила идентификатор CVE-2026-78165. Похожая схема у компонента JGroups: он небезопасно разбирает сообщения кластера. В обоих случаях атака начинается с сообщения, которое злоумышленник отправляет в канал или в кластер. Условия атаки Apache описывает не полностью: для Spring Redis он ограничивается требованием публикации в канал, который читает уязвимый потребитель. Затронуты ветки ниже 4.18.5 и от 4.19.0 до 4.22.1; точные нижние границы указаны в самом уведомлении.
Несколько проблем касаются Camel K и кластера Kubernetes. Одна из них - внедрение в YAML-описания, текстовые файлы конфигурации: подставленные конструкции превращаются в произвольные объекты Kubernetes, которые создаёт оператор. Ещё одна - доступ к репозиториям арендаторов: если арендатор управляет своим репозиторием, он может добиться запуска команд Maven, системы сборки Java, внутри пода оператора. Затронуты ветки Camel K от 2.0.0 до 2.9.3 и от 2.10.0 до 2.10.2, верхние границы не включаются. Вторая из этих проблем описана как CVE-2026-80352.
Проверка подлинности не всегда останавливает обработку. В компоненте OAuth, протоколе делегированной авторизации, процессор при неудачной аутентификации возвращает управление маршруту. В итоге запрос без действующих учётных данных проходит дальше по приложению. Отдельная проблема - подстановка свойств в заголовках, которые приходят в сообщении и переопределяют адрес назначения. Из-за этого в исходящий запрос могут попасть значения конфигурации и секреты хранилища.
Компоненты HTTP при включённом следовании перенаправлениям передают заголовок авторизации на новый адрес. В итоге удалённый сервер решает, какой узел получит учётные данные. Компонент Smooks разбирает XML с внешними сущностями, то есть со ссылками на файлы и сетевые адреса. Через такие ссылки можно прочитать локальный файл или обратиться к внутреннему узлу сети из процесса Camel.
Верхние границы затронутых диапазонов не включаются, поэтому исправленными считаются выпуски 4.18.5 и 4.22.1 для компонентов ядра. Для Camel K исправления вышли в 2.9.3 и 2.10.2. Apache советует выбирать исправленный выпуск для каждой ветки отдельно: нижние границы диапазонов у разных компонентов различаются. Собственный апгрейд оператора нужен и для Camel K: исправления в ядре его не заменяют.
Сведений об эксплуатации этих уязвимостей в реальных атаках уведомления не содержат. Публикация уведомления означает, что технические детали стали доступны, а не что уязвимости уже применяют.
Значимость зависит от конфигурации. В первую очередь проверяют маршруты, куда приходит внешний ввод и откуда он попадает в уязвимые потребители, процессоры аутентификации или исходящие HTTP-компоненты.
Ограничить круг тех, кто может публиковать сообщения в каналы, которые читают потребители Camel. Проверить настройки следования перенаправлениям. Заголовки из недоверенных сообщений отсекать, если маршрут их не использует. Обновлять ядро и оператор Camel K по отдельности.