
Воспроизведение для CVE-2026-46456 — инъекция заголовков входящих сообщений camel-aws2-sqs в Apache Camel (инъекция управляющих заголовков Camel через sqs:SendMessage → перенаправление последующего producer / RCE)
| Среда выполнения | Каталог | Стек | Перехваченный приёмник | Продемонстрированное воздействие |
|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-spring-boot 4.18.2 | exec: через CamelExecCommand* | удалённое выполнение кода |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0 (включает Camel 4.20.0) | http через CamelHttpUri | подделка серверных запросов (SSRF) |
Обе версии затронуты уязвимостью (исправлено в 4.14.8 / 4.18.3 / 4.21.0), и обе демонстрируют один и тот же дефект:
Sqs2HeaderFilterStrategy настраивает только исходящий фильтр, поэтому Sqs2Consumer сопоставляет каждый входящий
атрибут сообщения SQS с Exchange — включая управляющие заголовки Camel. Автор маршрута никогда не предоставлял способа
изменить целевой downstream-компонент, но злоумышленник, способный поставить сообщение в очередь, внедряет такой заголовок и управляет downstream-производителем (CWE-20).
Вариант на Spring Boot доказывает RCE через приёмник exec:. Этот приёмник недоступен по умолчанию в Camel
4.20.0 (который включает Camel Quarkus 3.36.0): CAMEL-23315 добавил опцию allowControlHeaders в
camel-exec, по умолчанию равную false, впервые выпущенную в 4.20.0. Это ужесточение не зависит от данного CVE и
не исправляет его — внедрённые атрибуты сообщений по-прежнему становятся заголовками Exchange в 4.20.0. Поэтому вариант на Quarkus
перехватывает производитель http через CamelHttpUri, который учитывается по умолчанию, что приводит к SSRF.
Каждый подкаталог представляет собой автономный проект (плюс контейнер LocalStack, запускаемый его docker-compose.yml)
с собственным Dockerfile и README. Вкратце, для любого из них:
cd camel-spring-boot # или: cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down
| Свойство | Значение |
|---|---|
| Компонент | camel-aws2-sqs |
| Затронутый класс | org.apache.camel.component.aws2.sqs.Sqs2HeaderFilterStrategy (без входящего фильтра) / Sqs2Consumer |
| CWE | CWE-20: Недостаточная проверка входных данных |
| Воздействие | Отправитель сообщения внедряет управляющие заголовки Camel → управление downstream-производителями |
| Затронутые версии | С 4.0.0 до 4.14.8, с 4.15.0 до 4.18.3, с 4.19.0 до 4.21.0 |
| Исправленные версии | 4.14.8, 4.18.3, 4.21.0 |
| JIRA | CAMEL-23506 |
Консультация: https://camel.apache.org/security/CVE-2026-46456.html
Эти воспроизведения предоставлены только для исследований в области безопасности и авторизованного тестирования, для публично раскрытой и исправленной уязвимости. Не используйте их против систем без явного разрешения.