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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2026-15911-Confluent_Kafka — Отключение проверки TLS-сертификата для HashiCorp Vault KMS в confluent-kafka | Kitploit
Инструменты/GitHubGitHub/rahulreddykarne/cve-2026-15911-confluent_kafka
Оборонительные ИнструментыАнализ уязвимостейВиртуализация для безопасностиКриптографияБезопасность облачных средСтатьи и ИсследованияОбучение и Образование
GitHub

Популярное

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

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

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

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

Смотреть все инструменты →
rahulreddykarne/cve-2026-15911-confluent_kafka

CVE-2026-15911-Confluent_Kafka

Отключение проверки TLS-сертификата для HashiCorp Vault KMS в confluent-kafka

Репозиторий
1 день назадЕщё не проверено
Поделиться

CVE-2026-15911: Отключена проверка TLS-сертификатов для HashiCorp Vault KMS в confluent-kafka

Уровень опасности: Высокий, CVSS 3.1 7.4

Вектор (v3.1): CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N

Затронуто: confluent-kafka >= 2.8.0, <= 2.14.2

Исправлено в: 2.15.0

CWE: CWE-295 (Некорректная проверка сертификатов)

Компонент: confluent_kafka/schema_registry/rules/encryption/hcvault/hcvault_client.py

Обнаружил: Rahul Karne

CNA: VulnCheck


Краткое описание

Клиент HashiCorp Vault KMS в confluent-kafka жёстко задаёт verify=False при создании hvac.Client, отключая проверку TLS-сертификатов для HTTPS-соединений с Vault, устанавливаемых через правила шифрования полей Schema Registry.

Уязвимый код находится в:

confluent_kafka/schema_registry/rules/encryption/hcvault/hcvault_client.py

Затронутый клиент инициализируется следующим образом:

self._client = hvac.Client(
    url=vault_url,
    token=token,
    namespace=ns,
    verify=False
)

Поскольку verify=False задан безусловно, клиент принимает недоверенные TLS-сертификаты, включая самоподписанные или контролируемые злоумышленником.

Злоумышленник, занимающий позицию в сети и способный перехватывать или перенаправлять трафик приложения к Vault, может выдать себя за сервер Vault, перехватить учётные данные аутентификации Vault и вернуть поддельные ответы Vault/KMS.

Затронутая интеграция HCVault предоставляет конфигурацию для токенов Vault, пространств имён и учётных данных AppRole, однако в затронутых версиях отсутствует поддерживаемая конфигурация CA-бандла или эквивалентный механизм для восстановления проверки сертификатов.


Влияние

Злоумышленник, занимающий позицию «человек посередине» в сети между приложением и HashiCorp Vault, может:

  1. Предъявить контролируемый злоумышленником или самоподписанный TLS-сертификат.
  2. Добиться принятия этого сертификата, поскольку проверка отключена.
  3. Перехватить материалы аутентификации Vault, включая:
    • X-Vault-Token
    • AppRole role_id
    • AppRole secret_id
  4. Внедрить поддельные ответы Vault.
  5. Вмешаться в операции обёртывания или развёртывания ключей KMS, используемые правилами шифрования Schema Registry.

Это может скомпрометировать конфиденциальность и целостность данных, защищаемых рабочим процессом KMS на базе Vault.


Охват

confluent-kafka — официальный Python-клиент Confluent для Apache Kafka.

Уязвимость затрагивает конкретно развёртывания, использующие:

Schema Registry encryption rules
        ↓
HCVault KMS integration
        ↓
hcvault:// key URI

Таким образом, затронутая аудитория уже, чем все пользователи confluent-kafka.

Однако затронутая функциональность критична с точки зрения безопасности, поскольку такие развёртывания полагаются на HashiCorp Vault для управления криптографическими ключами и шифрования на уровне полей.


Технические детали

HcVaultKmsClient.__init__() разбирает ключевой URI hcvault://, определяет базовый URL Vault и создаёт hvac.Client.

В затронутых версиях, включая 2.14.2, соответствующий код выглядит так:

self._client = hvac.Client(
    url=vault_url,
    token=token,
    namespace=ns,
    verify=False
)

if role_id and secret_id and self._client is not None:
    self._client.auth.approle.login(
        role_id=role_id,
        secret_id=secret_id
    )

Библиотека hvac в конечном счёте опирается на TLS-стек Python requests.

Установка:

verify=False

предписывает клиенту не проверять TLS-сертификат удалённого сервера.

В результате сертификаты, которые обычно были бы отклонены, могут быть приняты, включая сертификаты, которые:

  • Самоподписанные
  • Просроченные
  • Выданы для неправильного имени хоста
  • Подписаны недоверенным удостоверяющим центром
  • Сгенерированы злоумышленником

Это затрагивает оба поддерживаемых пути аутентификации.

Аутентификация по токену

При использовании аутентификации по токену токен Vault передаётся через HTTP-заголовок:

X-Vault-Token

Если злоумышленнику успешно удаётся выдать себя за конечную точку Vault, контролируемый им сервер может получить этот токен.

Аутентификация AppRole

При использовании аутентификации AppRole клиент отправляет:

role_id
secret_id

на:

/v1/auth/approle/login

Таким образом, успешная MITM-атака позволяет перехватить оба учётных данных AppRole.


Отсутствующая конфигурация TLS

Затронутый драйвер HCVault читает конфигурацию, включая:

token.id
namespace
approle.role.id
approle.secret.id

а также соответствующие переменные окружения VAULT_*.

Однако затронутые версии не предоставляют конфигурацию, позволяющую операторам:

  • Указать пользовательский CA-бандл.
  • Восстановить проверку сертификата сервера.
  • Настроить доверенные корни приватной PKI.
  • Настроить эквивалентное безопасное поведение проверки TLS.

В результате приложения, использующие затронутую интеграцию, не могут восстановить проверку TLS через обычную конфигурацию пакета.


Первопричина

Пакет явно отключает проверку TLS-сертификата сервера вместо того, чтобы полагаться на безопасное значение по умолчанию.

Уязвимая конструкция по сути такова:

hvac.Client(..., verify=False)

а не:

hvac.Client(..., verify=True)

или просто:

hvac.Client(...)

где проверка включена по умолчанию.

Отключение проверки сертификата устраняет аутентификацию сервера из TLS-соединения.

Хотя соединение остаётся зашифрованным, у клиента нет надёжного механизма определения того, общается ли он с легитимным сервером Vault.

Это создаёт условие, необходимое для сетевой атаки «человек посередине».


Предусловия эксплуатации

Успешная эксплуатация требует:

  1. Приложение использует затронутую версию confluent-kafka:

    • с 2.8.0 по 2.14.2.
  2. Приложение использует правила шифрования Schema Registry с интеграцией HCVault KMS.

  3. Настроенный ключ KMS использует схему:

hcvault://
  1. Злоумышленник получает позицию в сети, позволяющую перехватывать, перенаправлять или подменять трафик между приложением и Vault.

Возможные примеры включают:

  • Подмену DNS
  • Подмену ARP
  • Скомпрометированную сетевую инфраструктуру
  • Вредоносную инфраструктуру Wi-Fi или роутера
  • Манипуляции с маршрутами/BGP
  • Вредоносный прокси исходящего трафика
  • Скомпрометированный сетевой сегмент

После получения необходимой позиции MITM привилегии на уровне приложения или взаимодействие с жертвой не требуются.


Доказательство концепции

poc_confluent_kafka.py демонстрирует проблему на локально распакованном wheel-пакете confluent-kafka 2.14.2.

PoC использует:

  • Локальный самоподписанный HTTPS-сервер, имитирующий HashiCorp Vault.
  • Фиктивные учётные данные Vault.
  • Реальную уязвимую реализацию HcVaultKmsClient.
  • Никакой реальной инфраструктуры Kafka.
  • Никакой реальной инфраструктуры Vault.
  • Никаких производственных учётных данных.

Доказательство концепции содержит пять режимов.

РежимОписание
certГенерирует самоподписанный сертификат и ключ для локального mock Vault.
serverЗапускает mock HTTPS Vault на https://localhost:8443 и отображает полученные запросы.
controlБезопасный контроль с verify=True; должен отклонить самоподписанный сертификат с CERTIFICATE_VERIFY_FAILED.
tokenЗагружает уязвимый HcVaultKmsClient и демонстрирует, что он принимает недоверенный сертификат.
approleПроверяет уязвимый путь аутентификации AppRole и демонстрирует раскрытие role_id и secret_id.

Настройка

Установите зависимости PoC:

pip install hvac cryptography

Поместите распакованный уязвимый wheel рядом с PoC:

confluent_kafka-2.14.2-cp310-cp310-win_amd64/
└── confluent_kafka/
    └── schema_registry/
        └── ...
Скачать инструмент