Уязвимости в Apache Kafka позволяют обойти аутентификацию и раскрыть конфиденциальные данные

Apache Kafka

В популярной платформе потоковой обработки данных Apache Kafka обнаружены две критические уязвимости, которые ставят под угрозу конфиденциальность информации и позволяют злоумышленникам обходить политики безопасности. Проблемы затрагивают значительное количество версий как серверной части Kafka, так и клиентских библиотек, что требует немедленного внимания со стороны администраторов и разработчиков, использующих эту систему. Между тем, разработчики из Apache Software Foundation уже выпустили исправления, и ключевым шагом для защиты является обновление до безопасных версий.

Детали уязвимостей

Первая уязвимость, получившая идентификатор CVE-2026-33557, связана с некорректной проверкой JWT-токенов при использовании механизма аутентификации OAUTHBEARER. JWT-токен (JSON Web Token) - это открытый стандарт для создания токенов доступа, основанных на JSON. По умолчанию в уязвимых версиях Kafka сервер (брокер) использует валидатор "DefaultJwtValidator", который, как выяснилось, принимает любой предъявленный токен без проверки его криптографической подписи, эмитента (issuer) или аудитории (audience). Это фундаментальный недостаток проверки ввода, классифицируемый как CWE-1285. На практике это означает, что атакующий может сгенерировать токен от любого источника, указав в поле "preferred_username" имя произвольного пользователя, и сервер предоставит этому токену полномочия соответствующего пользователя. Таким образом, злоумышленник получает возможность полностью обойти систему аутентификации и получить несанкционированный доступ к топикам Kafka и данным в них. Данная проблема затрагивает исключительно серверные версии Apache Kafka 4.1.0 и 4.1.1. В более новых релизах, начиная с версий 4.1.2 и 4.2.0, ошибка исправлена, а валидатор по умолчанию заменен на безопасный "BrokerJwtValidator".

Вторая уязвимость, CVE-2026-33558, приводит к потенциальной утечке чувствительной информации через логи клиентской сетевой библиотеки. Компонент NetworkClient, отвечающий за сетевое взаимодействие, при установленном уровне логирования DEBUG выводит в журналы полное содержимое определенных запросов и ответов. По умолчанию уровень логирования установлен на INFO, однако на многих промышленных стендах для детальной отладки проблем DEBUG может быть включен. В таком случае в логи могут попасть конфиденциальные данные, передаваемые в рамках таких операций, как изменение конфигураций (AlterConfigsRequest), управление учетными данными пользователей (AlterUserScramCredentialsRequest), аутентификация SASL (SaslAuthenticateRequest и SaslAuthenticateResponse) и работа с токенами делегирования. Утечка подобной информации представляет собой серьезную угрозу, классифицируемую как CWE-533 (раскрытие информации через файлы журналов сервера). Злоумышленник, получивший доступ к таким логам, может извлечь из них учетные данные, токены сессий или детали конфигурации системы, что в дальнейшем упростит проведение целенаправленной атаки. Эта проблема имеет более широкий охват: она затрагивает сервер Apache Kafka и клиентские библиотеки (Kafka Clients) начиная с версии 0.11.0 и вплоть до 3.9.1, а также версию 4.0.0.

Последствия эксплуатации этих уязвимостей могут быть крайне серьезными для компаний, использующих Kafka в качестве основы для своих data pipeline, систем событийного дизайна или обработки данных в реальном времени. Успешная атака с использованием CVE-2026-33557 эквивалентна получению административного доступа к шине сообщений, что позволит злоумышленнику читать любые передаваемые данные, включая персональные данные клиентов, финансовые транзакции или служебную информацию. Кроме того, атакующий сможет отправлять вредоносные сообщения, что может нарушить работу downstream-систем (систем-потребителей данных). В свою очередь, эксплуатация CVE-2026-33558, хотя и требует доступа к файлам логов, ведет к компрометации учетных данных, что является классическим первым шагом для закрепления в системе (persistence) и горизонтального перемещения по инфраструктуре.

Для минимизации рисков специалистам по информационной безопасности и DevOps-инженерам необходимо предпринять срочные меры. Во-первых, следует провести инвентаризацию всех развернутых экземпляров Apache Kafka и используемых клиентских библиотек. Во-вторых, необходимо обновить серверы Kafka, работающие на версиях 4.1.0 и 4.1.1, до версии 4.1.2 или выше. В-третьих, серверы и клиенты на версиях от 0.11.0 до 3.9.1, а также версию 4.0.0, нужно обновить до 3.9.2, 4.0.1 или более новых стабильных релизов. Для тех, кто по каким-либо причинам не может немедленно выполнить обновление, существуют временные обходные пути. Для защиты от CVE-2026-33557 в уязвимых версиях 4.1.x можно вручную установить в конфигурации брокера параметр "sasl.oauthbearer.jwt.validator.class" в значение "org.apache.kafka.common.security.oauthbearer.BrokerJwtValidator". Что касается CVE-2026-33558, критически важно проверить и убедиться, что уровень логирования для компонентов Kafka нигде не установлен в значение DEBUG на производственных средах, а доступ к файлам журналов строго ограничен. Данные инциденты лишний раз подчеркивают важность регулярного мониторинга источников информации об уязвимостях, таких как базы данных CVE, и наличия четкого, отработанного процесса управления обновлениями для ключевых компонентов инфраструктуры.

Ссылки

Комментарии: 0