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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-84178 — Рабочий воспроизводитель proof-of-concept для CVE-2026-84178 — CSRF-уязвимости при входе в callback авторизационного кода Apache Camel camel-oauth, который обменивает коды без проверки state. | Kitploit
Инструменты/GitHubGitHub/oscerd/cve-2026-84178
Анализ уязвимостейЭксплуатация веб-приложенийВеб-безопасностьАутентификацияОбучение и Образование
GitHuboscerd/cve-2026-84178

CVE-2026-84178

Рабочий воспроизводитель proof-of-concept для CVE-2026-84178 — CSRF-уязвимости при входе в callback авторизационного кода Apache Camel camel-oauth, который обменивает коды без проверки state.

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

Популярное

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

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

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

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

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

CVE-2026-84178 — camel-oauth: CSRF при входе через callback authorization-code (отсутствует state)

Запускаемый воспроизводитель proof-of-concept для уязвимости Apache Camel, при которой callback OAuth authorization-code не содержал параметра state, привязывающего его к запросу авторизации, инициировавшему поток, и не проверял его. Полученный в любом браузере authorization code мог быть погашен на callback и связан с той сессией, которая его предъявила — межсайтовая подделка запроса при входе: жертва незаметно входит под учётной записью, контролируемой атакующим, поэтому последующие действия и данные жертвы попадают в аккаунт атакующего. (Тот же непроверяемый callback также позволял влиять на цель перенаправления после аутентификации — открытый редирект.) Как отмечается в рекомендации, проверка state выполняется до погашения кода, поэтому разница достижима без какого-либо взаимодействия с провайдером идентификации.

Среда выполненияКаталогСтек
Camel Spring Bootcamel-spring-boot/Spring Boot 3.5.13 + camel-oauth 4.22.0 (уязвим; исправлено в 4.22.1), callback через camel-undertow
Camel Quarkuscamel-quarkus/Quarkus 3.39.0 + camel-quarkus-oauth 3.39.0 (Camel 4.22.0, уязвим; исправлено в контрольной версии 3.40.0 / Camel 4.22.1), callback через camel-quarkus-platform-http

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

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

Реальный, немодифицированный процессор OAuthCodeFlowCallback обрабатывает endpoint callback. В реестре Camel регистрируется крошечный заглушечный OAuth, чтобы callback работал без живого провайдера идентификации — он заменяет только IdP и фиксирует момент погашения authorization code (что в реальном потоке привязывает результирующую идентичность к предъявляющей сессии). Атакующий просто обращается к callback с code и без соответствующего state:

  • Уязвимо: callback погашает предоставленный атакующим код и привязывает идентичность к сессии — HTTP 302 (вход успешен). Заглушка фиксирует погашение.
  • Исправлено: callback отклоняет с HTTP 400 "No authorization code flow in progress" (требуется state, соответствующий запросу авторизации, инициированному этой сессией) — код никогда не погашается.
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack
docker compose down

Ожидаемый вывод на затронутой сборке:

Request: GET /callback?code=ATTACKER-SUPPLIED-AUTH-CODE   (no 'state' parameter)
Callback HTTP status: 302
>>> PROVEN: the callback redeemed the authorization code ... WITHOUT verifying a state parameter ... login CSRF.

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

СвойствоЗначение
Компонентcamel-oauth (обратный вызов authorization-code, OAuthCodeFlowCallback)
CWECWE-352 (межсайтовая подделка запроса)
Уровень серьёзностиMEDIUM
Вектор атакиЗапрос обратного вызова, несущий код авторизации без state, привязанного к запросу авторизации сессии
ВоздействиеLogin CSRF (жертва входит под идентичностью, контролируемой атакующим); открытый редирект с доверенного источника
Затронутые версииС 4.11.0 до 4.18.5, с 4.19.0 до 4.22.1
Исправленные версии4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24437
БлагодарностьClaude Security Scan Tool

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

Исправление

Теперь обратный вызов несёт и проверяет одноразовый параметр state, привязанный к запросу авторизации, который запустила сессия: expectedState = session.removeValue(OAUTH_STATE), сравниваемый (за постоянное время) с параметром запроса state. Если никакой поток не выполняется или состояние не совпадает, обратный вызов отклоняет запрос до обмена кода.

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

Разместите обратный вызов за компонентом, который обеспечивает привязку CSRF state, или не полагайтесь на обратный вызов OAuth code-flow для установления сессии, пока не сможете обновиться.

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

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

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