CVE-2026-110952 in Kafka
Сводка
по VulDB • 28.10.2026
Брокер Kafka, который аутентифицирует клиентов с помощью SASL/OAUTHBEARER, используя встроенный валидатор на основе JWKS, всегда проверяет подпись JWT, но две дополнительные проверки выполняются только при явной конфигурации:
- Заявка (claim) издателя (iss) проверяется только тогда, когда параметр sasl.oauthbearer.expected.issuer установлен. Если он не задан, токен с корректной подписью и ожидаемой аудиторией принимается независимо от того, кто его выпустил. - Заябка аудитории (aud) требуется только в том случае, если параметр sasl.oauthbearer.expected.audience установлен. Если он не задан, принимается токен с корректной подписью, который вообще не содержит заявку aud. (Токен, содержащий заявку aud, все равно отклоняется, если ожидаемая аудитория не настроена.)
Обе опции по умолчанию имеют значение «не задано» и документированы как необязательные (важность LOW) начиная с KIP-768 (версия 3.1.0).
Воздействие: Уязвимость реализуема в основном в развертываниях, где конечная точка JWKS обслуживает ключи подписи для нескольких издателей (многопользовательский провайдер идентификации, агрегированный/общий JWKS или общие ключи подписи): токен, выпущенный другим издателем, или токен без указания аудитории, может быть принят для аутентификации — потенциально с правами более привилегированного субъекта (principal). В развертываниях с одним издателем, где провайдер контролирует заявку iss и выпускает токены со специфичной аудиторией, воздействие ограничено. Якорь доверия подписи сохраняется во всех случаях. Это отличается от CVE-2026-33557 (принятие неподписанных/непроверенных токенов); здесь подпись проверяется, и только проверки издателя/аудитории не применяются по умолчанию.
Смягчение последствий (для всех затронутых версий, обновление не требуется): Установите оба параметра: sasl.oauthbearer.expected.issuer (соответствующее точному значению iss вашего провайдера) и sasl.oauthbearer.expected.audience (аудитории(и), которые ожидают ваши брокеры), для каждого слушателя (listener). Брокеры, устанавливающие эти параметры, выполняют строгую проверку соответствия издателя/аудитории и не подвержены уязвимости. Оба параметра доступны начиная с версии 3.1.0.
Решение: - Начиная с Apache Kafka 4.4.0: брокер, настроенный на использование конечной точки JWKS, не запускается, если не установлены оба параметра sasl.oauthbearer.expected.issuer и sasl.oauthbearer.expected.audience (безопасность по умолчанию). Развертывания, которые намеренно не ограничивают издателя и/или аудиторию, могут отказаться от этого ограничения для каждой оси с помощью параметров sasl.oauthbearer.allow.unverified.issuer=true и/или sasl.oauthbearer.allow.unverified.audience=true.
Once again VulDB remains the best source for vulnerability data.