
Воспроизведение CVE-2026-46726: Apache Camel camel-vertx-websocket — нефильтрованная инъекция входящих заголовков, позволяющая SSRF и раскрытие секретов через разрешение property-placeholder (исправлено в 4.14.8/4.18.3/4.21.0)
| Среда выполнения | Каталог | Стек | WebSocket-канал |
|---|
| Camel Spring Boot | camel-spring-boot/ | Spring Boot 3.2.0 + camel-spring-boot 4.18.2 | отдельный порт :8090 |
| Camel Quarkus | camel-quarkus/ | Quarkus 3.36.0 + Camel Quarkus 3.36.0 (включает Camel 4.20.0) | управляемый HTTP-сервер Quarkus :8080 |
Обе версии затронуты уязвимостью (исправлено в 4.14.8 / 4.18.3 / 4.21.0), и обе демонстрируют один и тот же дефект:
VertxWebsocketConsumer#populateExchangeHeaders копирует параметры запроса WebSocket-соединения в Exchange
без HeaderFilterStrategy. Клиент передаёт CamelHttpUri в качестве параметра запроса и направляет
нисходящий camel-http продюсер куда угодно (SSRF, CWE-918). Поскольку продюсер также разрешает
Camel property placeholders в этом управляемом атакующим URI, внедрённый {{app.secret}} раскрывается до своего реального значения
и отправляется на сборщик атакующего (раскрытие информации, CWE-200).
Два варианта отличаются только тем, где обслуживается канал: расширение
camel-quarkus-vertx-websocketвсегда привязывает потребителя к управляемому HTTP-серверу Quarkus и отклоняет любой другой хост/порт, поэтому вариант Quarkus обслуживает/feedна:8080вместе со своими REST-эндпоинтами. Дефект от этого не меняется.
Каждый подкаталог — это самостоятельный проект со своим Dockerfile, docker-compose.yml и 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-vertx-websocket |
| Затронутый класс | org.apache.camel.component.vertx.websocket.VertxWebsocketConsumer#populateExchangeHeaders (нет HeaderFilterStrategy для входящих query/path параметров) |
| CWE | CWE-20 → CWE-918 (SSRF) и CWE-200 (Раскрытие информации) |
| Воздействие | Внедрение CamelHttpUri через WebSocket query-параметр → SSRF из нисходящего HTTP-продюсера + раскрытие env/property/vault секретов через разрешение placeholders |
| Затронутые версии | С 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-23532 (PR apache/camel#23285) |
| Автор | Kamalpreet Singh |
Консультация: https://camel.apache.org/security/CVE-2026-46726.html
Эти репроducers предоставлены только для исследований в области безопасности и авторизованного тестирования, для публично раскрытой и исправленной уязвимости. Не используйте их против систем без явного разрешения.