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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-84180 — Работоспособные репродьюсеры на Spring Boot и Quarkus для CVE-2026-84180, демонстрирующие утечку исключений HTTP-консьюмера camel-knative и проверяющие исправление muteException. | Kitploit
Инструменты/GitHubGitHub/oscerd/cve-2026-84180
Оборонительные ИнструментыАнализ уязвимостейСбор информацииВеб-безопасностьОбучение и Образование
GitHuboscerd/cve-2026-84180

CVE-2026-84180

Работоспособные репродьюсеры на Spring Boot и Quarkus для CVE-2026-84180, демонстрирующие утечку исключений HTTP-консьюмера camel-knative и проверяющие исправление muteException.

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

Популярное

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

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

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

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

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

CVE-2026-84180 — camel-knative: раскрытие информации через HTTP-консьюмер (исключение записывается обратно вызывающей стороне)

Запускаемый воспроизводимый proof-of-concept для уязвимости Apache Camel, при которой HTTP-консьюмер Knative, когда обмен завершался ошибкой на стороне консьюмера, записывал возникшее исключение обратно удалённой вызывающей стороне в качестве тела HTTP-ответа — включая имя класса, сообщение и полную трассировку стека. Внешний отправитель мог, таким образом, спровоцировать сбой и прочитать внутренние сведения о развёртывании: имена классов и пакетов, имена файловой системы или хоста, содержащиеся в сообщениях исключений, структуру маршрута, а также — если сообщение исключения содержит строку подключения или конфигурацию — эти данные напрямую. camel-knative был оставшимся консьюмером семейства HTTP, который не был приведён в соответствие с поведением muteException, установленным для других HTTP-консьюмеров в CAMEL-23651.

Среда выполненияКаталогСтек
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-knative 4.22.0 (уязвим; исправлено в 4.22.1), консьюмер на сервере platform-http Vert.x от Camel
Camel Quarkuscamel-quarkus/Quarkus 3.29.0 + camel-quarkus-knative (Camel 4.15.0, уязвим; контрольное исправление CQ 3.40.0 / Camel 4.22.1), консьюмер на Quarkus HTTP

Оба модуля демонстрируют как уязвимое, так и исправленное поведение.

Что демонстрируется

Маршрут Knative HTTP source (консьюмер) получает CloudEvent и затем завершается ошибкой при его обработке — это имитирует любой маршрут, столкнувшийся с внутренней ошибкой (неудачный запрос к источнику данных, тайм-аут нижестоящего сервиса, ошибка в коде). Маршрут выбрасывает IllegalStateException, сообщение которого несёт смоделированные внутренние сведения: поддельное внутреннее имя хоста (internal-db.prod.svc.cluster.local), поддельный JDBC URL и маркерный токен INTERNAL-DETAIL-MARKER-7F3A2B. Атакующий — это просто удалённая вызывающая сторона: он отправляет POST с одним корректно сформированным CloudEvent консьюмеру и читает ответ, который консьюмер отправляет обратно.

  • Уязвимое поведение: ответ — HTTP 500 с полной трассировкой стека в теле — имя класса исключения, сообщение (внутреннее имя хоста + маркерный токен) и кадры стека at com.example... / фреймворка.
  • Исправленное поведение: ответ — HTTP 500 с пустым телом — консьюмер теперь соблюдает muteException (по умолчанию true), поэтому возвращается статус ошибки, но никакие сведения об исключении не достигают вызывающей стороны.
# Camel Spring Boot
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack      # affected: stack trace leaks; prints >>> PROVEN
docker compose down
# Patched control: rebuild with the fixed version, then run on the host
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-84180-knative-info-disclosure-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack      # fixed: empty body; prints >>> Not exploited
# Camel Quarkus
cd camel-quarkus
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack      # affected (Camel 4.15.0): stack trace leaks; >>> PROVEN
docker compose down
# Patched control: CQ 3.40.0 ships Camel 4.22.1
mvn clean package -Dcamel-quarkus.version=3.40.0 -Dquarkus.platform.version=3.40.0
java -jar target/quarkus-app/quarkus-run.jar &
curl -s http://localhost:8080/exploit/attack      # fixed: empty body; >>> Not exploited

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

СвойствоЗначение
Компонентcamel-knative (потребитель Knative HTTP, KnativeHttpConsumer.computeResponseBody)
CWECWE-209 (Генерация сообщения об ошибке, содержащего конфиденциальную информацию)
Уровень серьёзностиСРЕДНИЙ
Вектор атакиУдалённый вызывающий субъект провоцирует сбой маршрута на стороне потребителя и читает детали исключения из тела ответа
ВоздействиеРаскрытие информации: класс/сообщение/трассировка стека исключения (внутренние имена хостов, имена пакетов, структура маршрута, встроенные строки подключения) попадают к внешнему отправителю
Затронутые версииС 4.0.0 до 4.18.5, с 4.19.0 до 4.22.1
Исправленные версии4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24428
БлагодарностьClaude Security Scan Tool

Уведомление: https://camel.apache.org/security/CVE-2026-84180.html

Исправление

KnativeHttpConsumer.computeResponseBody теперь проверяет новую опцию muteException (потребитель, по умолчанию true). Когда она включена, неудачный обмен даёт пустое тело ответа (new byte[0]) вместо трассировки стека — пустое тело выбрано намеренно, чтобы сохранялся статус ошибки (при null-теле вызывающий субъект отправил бы 204 No Content). Установите muteException=false, чтобы восстановить прежнее поведение. Это приводит camel-knative в соответствие с другими потребителями семейства HTTP (CAMEL-23651).

Меры защиты, если вы не можете обновиться

Добавьте в маршрут потребителя обработчик onException, который явно задаёт тело ответа (например, пустое тело или общее сообщение), чтобы фреймворк никогда не записывал исключение обратно вызывающему субъекту.

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

Этот репозиторий публикуется в образовательных и защитных целях: чтобы помочь пользователям Apache Camel понять уязвимость, проверить, затронуты ли они, и убедиться, что обновление её устраняет. «Внутреннее» имя хоста, JDBC URL и маркерный токен в сбойном маршруте являются инертными, вымышленными локальными фикстурами — никакой реальный секрет не задействован. Не используйте этот материал против систем, которыми вы не владеете и которые не эксплуатируете.

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