Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-83531 — Рабочий proof-of-concept на Spring Boot для CVE-2026-83531, демонстрирующий инъекцию выражений (expression-language injection) в эндпоинте dynamic-router-control Apache Camel и проверяющий исправление. | Kitploit
Инструменты/GitHubGitHub/oscerd/cve-2026-83531
Оборонительные ИнструментыАнализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийОбучение и Образование
GitHuboscerd/cve-2026-83531

CVE-2026-83531

Рабочий proof-of-concept на Spring Boot для CVE-2026-83531, демонстрирующий инъекцию выражений (expression-language injection) в эндпоинте dynamic-router-control Apache Camel и проверяющий исправление.

Репозиторий
31 день назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-83531 — camel-dynamic-router: инъекция языка выражений через control-endpoint

Запускаемый воспроизводитель proof-of-concept для уязвимости Apache Camel, при которой endpoint dynamic-router-control принимал предикат подписки и имя языка, используемого для его компиляции, из входящего сообщения (поля predicate / expressionLanguage в DynamicRouterControlMessage либо заголовки CamelDynamicRouterPredicate / CamelDynamicRouterExpressionLanguage). Затем сервис разрешал этот язык из CamelContext и компилировал выражение в Predicate, без allow-list и без opt-in. Скомпилированный предикат вычислялся для каждого exchange, маршрутизируемого через канал, — поэтому любой субъект, способный отправить сообщение в транспорт, маршрут которого пересылает его в control endpoint, мог передать выражение по своему выбору, вычисляемое с привилегиями процесса Camel. Можно было выбрать любой язык в classpath, включая simple, который присутствует всегда и был значением по умолчанию.

Только Camel Spring Boot. Расширения camel-quarkus-dynamic-router не существует, поэтому этот воспроизводитель нельзя запустить на Camel Quarkus.

Среда выполненияКаталогСтек
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-dynamic-router 4.22.0 (уязвимая версия; исправлено в 4.22.1)

Что демонстрируется

Приложение настраивает канал Dynamic Router test (direct:start → dynamic-router://test). Атакующий отправляет control-сообщение subscribe, несущее выбранное атакующим выражение предиката и язык:

CamelDynamicRouterPredicate          = ${bean:detonator?method=detonate}
CamelDynamicRouterExpressionLanguage = simple

Затем одно сообщение маршрутизируется через канал, который вычисляет предикат подписки. В уязвимой сборке выражение выполняется, вызывая detonator.detonate() — безвредную замену любого метода реестра без аргументов, до которого мог бы добраться атакующий (и любой язык, например Groovy, обеспечивает выполнение произвольного кода). В исправленной сборке контрольная конечная точка отказывается принимать предикат/язык из сообщения.

cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

Ожидаемый вывод на затронутой сборке:

Subscription accepted.
>>> PROVEN: the attacker-supplied predicate expression was compiled and evaluated, invoking
>>> detonator.detonate() with the privileges of the Camel process ...

В исправленной сборке подписка отклоняется с IllegalArgumentException: The subscription predicate expression, and the language used to compile it, cannot be taken from a control message. ... set 'allowPredicateFromMessage=true' ....

Сводка уязвимости

СвойствоЗначение
Компонентcamel-dynamic-router (endpoint dynamic-router-control)
CWECWE-94 (внедрение кода), CWE-917 (внедрение выражений языка)
КритичностьВЫСОКАЯ
Вектор атакиУправляющее сообщение (subscribe/update), передающее выражение-предикат и язык, на транспорте, маршрут которого перенаправляет его в endpoint dynamic-router-control
ВоздействиеВычисление выбранного атакующим выражения (на любом языке из classpath) с привилегиями процесса Camel — выполнение кода
Уязвимые версииС 4.4.0 до 4.18.5, с 4.19.0 до 4.22.1
Исправленные версии4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24576
БлагодарностьLeon Zlobecki

Уведомление: https://camel.apache.org/security/CVE-2026-83531.html

Исправление

Выражение-предикат и его язык больше не берутся из управляющего сообщения по умолчанию: управляющее сообщение, которое их передаёт, отклоняется, если автор маршрута явно не включил allowPredicateFromMessage=true на endpoint dynamic-router-control. Предполагаемый путь — настройка predicate и expressionLanguage в URI endpoint (под контролем автора маршрута), как это было в версиях до 4.4.0.

Меры защиты, если обновление невозможно

Не перенаправляйте сообщения из внешних источников в endpoint dynamic-router-control; управляйте подписками только через endpoint, контролируемые автором маршрута, и ограничьте транспорты, которые могут достичь управляющего канала.

Отказ от ответственности

Этот репозиторий публикуется в образовательных и защитных целях: чтобы помочь пользователям Apache Camel понять уязвимость, проверить, затронуты ли они, и убедиться, что обновление её устраняет. Полезная нагрузка представляет собой безвредный маркерный бин. Не используйте этот материал против систем, которыми вы не владеете и не управляете.

Скачать инструмент