CVE-2026-95663
Apache Camel: политика безопасности Camel-Keycloak принимает просроченные токены доступа, поскольку кэшированные результаты интроспекции токенов не ограничены сроком действия токена
- Опубликовано
- 26 окт. 2026 г.
- Обновлено
- 26 окт. 2026 г.
- Назначение CNA
- apache
- Наблюдены доказательства
- 30 окт. 2026 г.
Первичный CVSS
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:NНизкий · следующие 30 дней
- Процентиль
- 15,7 %
- Дата модели
- 31 окт. 2026 г.
EPSS – это статистическая оценка, а не достоверность или мера воздействия. Объедините это с CVSS, статусом KEV, воздействием и вашей средой.
Резюме
Уязвимость недостаточного истечения сессии в компоненте Apache Camel Keycloak. Эта проблема затрагивает Apache Camel: с 4.16.0 до 4.18.5, с 4.19.0 до 4.22.2. Когда интроспекция токенов включена в KeycloakSecurityPolicy компонента camel-keycloak (useTokenIntrospection=true), процессор безопасности проверяет access-токен запроса, отправляя его в конечную точку интроспекции токенов OAuth 2.0 Keycloak, и принимает токен, пока ответ сообщает о нём как об активном. Конечная точка интроспекции сообщает о токене как о неактивном после истечения его времени exp (срока действия), поэтому на этом пути именно флаг active обеспечивает соблюдение срока действия токена. Результаты интроспекции по умолчанию кэшируются (introspectionCacheEnabled=true, introspectionCacheTtl=60 секунд), и обе реализации кэша, поставляемые с компонентом, ConcurrentMapTokenCache и CaffeineTokenCache, истекали запись через фиксированное время после её вставки, не ограничивая это время жизни утверждением exp, которое уже содержал кэшированный ответ. KeycloakSecurityProcessor, в свою очередь, проверял только флаг active результата на каждом пути, использующем интроспекцию, и никогда не сравнивал exp с текущим временем. Поэтому ответ, кэшированный незадолго до истечения срока действия токена, передавался последующим запросам с тем же токеном в течение до настроенного времени жизни после истечения срока действия токена, и эти запросы допускались с ролями и разрешениями, которые нёс истёкший токен, хотя RFC 7662, определяющий интроспекцию токенов, указывает, что ответ, содержащий exp, не должен кэшироваться дольше этого времени. Access-токен предоставляется вызывающей стороной с каждым запросом, обычно как bearer-токен в заголовке Authorization, поэтому вызывающая сторона, владеющая токеном, который был действителен мгновение назад, могла продолжать использовать его после истечения срока действия, пока жива кэшированная запись. Окно ограничено introspectionCacheTtl, который по умолчанию составляет 60 секунд и 300–600 секунд там, где следовали рекомендации документации для внутренних сервисов, и оно открывается только для токена, который тот же процесс Camel интроспектировал и кэшировал, пока токен ещё был активен. Проблема не даёт ничего сверх того, что уже нёс токен: она не позволяет подделывать токены и не приводит к повышению привилегий, а интроспекция токенов по умолчанию не включена, поэтому серьёзность оценивается как средняя. Путь локальной проверки JWT, используемый при отключённой интроспекции, этой проблемой не затронут. Пользователям рекомендуется обновиться до версии 4.23.0, которая исправляет проблему. Если пользователи находятся на ветке выпусков 4.22.x, им предлагается обновиться до 4.22.2. Если пользователи находятся на ветке выпусков 4.18.x, им предлагается обновиться до 4.18.5. Линии выпусков 4.16.x, 4.17.x и с 4.19.x до 4.21.x достигли окончания жизненного цикла до того, как эта проблема была решена, и не получат исправления, поэтому развёртывания на них должны перейти на поддерживаемый выпуск. Для развёртываний, которые не могут обновиться немедленно, установите introspectionCacheEnabled=false в KeycloakSecurityPolicy, чтобы каждый запрос проверялся через конечную точку интроспекции, которая сообщает об истёкшем токене как о неактивном, ценой одного вызова интроспекции на запрос. Снижение introspectionCacheTtl лишь сужает окно и не закрывает его.
Ответственное использование
Используйте информацию об уязвимостях только в тех системах, которыми вы владеете или имеете право тестировать. Kitploit ссылается на метаданные общедоступных исследований и не хранит код эксплойта или вредоносные полезные данные.