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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-84181 — Рабочий proof-of-concept на Spring Boot и Quarkus, воспроизводящий обход аутентификации thread-bound-subject в Apache Camel camel-shiro, с уязвимым и исправленным вариантами для сравнения. | Kitploit
Инструменты/GitHubGitHub/oscerd/cve-2026-84181
Оборонительные ИнструментыАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийАутентификацияОбучение и Образование
GitHuboscerd/cve-2026-84181

CVE-2026-84181

Рабочий proof-of-concept на Spring Boot и Quarkus, воспроизводящий обход аутентификации thread-bound-subject в Apache Camel camel-shiro, с уязвимым и исправленным вариантами для сравнения.

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

Популярное

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

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

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

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

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

CVE-2026-84181 — camel-shiro: обход аутентификации через subject, привязанный к потоку

Запускаемый воспроизводитель proof-of-concept для уязвимости Apache Camel, при которой процессор безопасности Shiro пропускал проверку учётных данных, когда Subject Shiro, уже привязанный к текущему потоку, нёс тот же principal, что и входящий exchange. Поскольку поток, несущий exchange Camel, берётся из пула и переиспользуется между exchange, subject, оставленный привязанным предыдущим аутентифицированным exchange, мог удовлетворять проверке для последующего exchange, который предъявлял никаких собственных действительных учётных данных — пароль в этом последующем exchange никогда не проверялся. Атакующему не нужно ничего, кроме отправки запроса с указанием principal, который в данный момент активно используется.

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

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

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

Маршрут защищён ShiroSecurityPolicy, созданной с alwaysReauthenticate=false — документированный режим, в котором аутентифицированный subject намеренно остаётся привязанным к (пуловому, переиспользуемому) рабочему потоку между exchange. Драйвер эксплойта в рамках одного HTTP-рабочего потока выполняет два exchange по порядку:

  1. легитимный запрос от ringo с правильным паролем starr — он аутентифицируется и оставляет Shiro subject привязанным к этому потоку (как это сделал бы предыдущий аутентифицированный запрос в загруженном сервисе);
  2. атакующий запрос с указанием того же пользователя ringo, но с неверным паролем not-starr, в том же потоке.
  • Уязвимо: второй exchange принимается без проверки его пароля — он использует subject, оставленный привязанным к потоку на шаге 1 — и достигает защищённой логики. Обход аутентификации.
  • Исправлено: учётные данные второго exchange проверяются самостоятельно, и он отклоняется с AuthenticationException, даже несмотря на то, что тот же пользователь всё ещё привязан к потоку.
# Camel Spring Boot
cd camel-spring-boot
mvn clean package
docker compose up -d --build
curl -s http://localhost:8080/exploit/attack     # affected: wrong password reaches protected logic; >>> PROVEN
docker compose down
# Patched control
mvn clean package -Dcamel.version=4.22.1
java -jar target/cve-2026-84181-shiro-auth-bypass-0.0.1-SNAPSHOT.jar &
curl -s http://localhost:8080/exploit/attack     # fixed: wrong password rejected; >>> 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): wrong password reaches protected logic
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: wrong password rejected

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

СвойствоЗначение
Компонентcamel-shiro (ShiroSecurityProcessor.authenticateUser)
CWECWE-287 (Некорректная аутентификация)
Уровень серьёзностиMEDIUM
Вектор атакиЗапрос, указывающий principal, в данный момент привязанный к переиспользуемому рабочему потоку, не несущий собственных действительных учётных данных
ВоздействиеОбход аутентификации: неаутентифицированный запрос принимается как уже привязанный principal; его пароль никогда не проверяется
Затронутые версииС 4.0.0 до 4.18.5, с 4.19.0 до 4.22.1
Исправленные версии4.18.5, 4.22.1, 4.23.0
JIRACAMEL-24439
БлагодарностьClaude Security Scan Tool

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

Исправление

ShiroSecurityProcessor.authenticateUser больше не пропускает вход в систему, когда привязанный к потоку субъект уже несёт тот же principal. Предыдущий код завершался досрочно при currentUser.isAuthenticated() && username.equals(currentUser.getPrincipal()); совпадение имени пользователя ничего не говорит о пароле, предъявленном в этом обмене. Теперь процессор вызывает currentUser.login(token) при каждом обмене, поэтому предъявленные учётные данные всегда проверяются. alwaysReauthenticate по-прежнему управляет временем жизни rememberMe для субъекта, но больше не определяет, проверяется ли пароль.

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

Убедитесь, что субъект Shiro очищается из потока в конце каждого обмена (чтобы никакой субъект не мог быть унаследован последующим) — например, с помощью onCompletion/процессора, вызывающего ThreadContext.unbindSubject() из Shiro, — пока вы не сможете обновиться.

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

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

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