Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-57836-Confluent_Kafka — Verificación de certificado TLS deshabilitada para HashiCorp Vault KMS en confluent-kafka | Kitploit
Herramientas/GitHubGitHub/rahulreddykarne/cve-2026-57836-confluent_kafka
Herramientas DefensivasAnálisis de VulnerabilidadesVirtualización de SeguridadSeguridad WebCriptografíaSeguridad en la NubeAprendizaje y Educación
GitHubrahulreddykarne/cve-2026-57836-confluent_kafka

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →

CVE-2026-57836-Confluent_Kafka

Verificación de certificado TLS deshabilitada para HashiCorp Vault KMS en confluent-kafka

Ver Repositorio
hace 1 díaAún no revisado
Compartir

CVE-2026-57836: Verificación de certificados TLS deshabilitada para HashiCorp Vault KMS en confluent-kafka

Severidad: Alta, CVSS 3.1 7.4

Vector (v3.1): CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N

Afectado: confluent-kafka >= 2.8.0, <= 2.14.2

Corregido en: 2.15.0

CWE: CWE-295 (Validación de certificados incorrecta)

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

Reportado por: Rahul Karne

CNA: VulnCheck


Resumen

El cliente de HashiCorp Vault KMS en confluent-kafka codifica de forma fija al construir su , deshabilitando la verificación de certificados TLS para las conexiones HTTPS a Vault realizadas a través de las reglas de cifrado de campos del Schema Registry.

verify=False
hvac.Client

El código vulnerable se encuentra en:

root@kitploit:~
confluent_kafka/schema_registry/rules/encryption/hcvault/hcvault_client.py

El cliente afectado se inicializa de la siguiente manera:

root@kitploit:~
self._client = hvac.Client(
    url=vault_url,
    token=token,
    namespace=ns,
    verify=False
)

Debido a que verify=False es incondicional, el cliente acepta certificados TLS no confiables, incluidos certificados autofirmados o controlados por el atacante.

Un atacante con posición de red capaz de interceptar o redirigir el tráfico de Vault de la aplicación puede suplantar el servidor de Vault, capturar credenciales de autenticación de Vault y devolver respuestas falsificadas de Vault/KMS.

La integración HCVault afectada expone configuración para tokens de Vault, namespaces y credenciales de AppRole, pero las versiones afectadas no proporcionan ninguna configuración de CA-bundle soportada ni un mecanismo equivalente para restaurar la verificación de certificados.


Impacto

Un atacante con una posición de man-in-the-middle de red entre la aplicación y HashiCorp Vault puede:

  1. Presentar un certificado TLS controlado por el atacante o autofirmado.
  2. Conseguir que ese certificado sea aceptado porque la verificación está deshabilitada.
  3. Capturar material de autenticación de Vault, incluidos:
    • X-Vault-Token
    • AppRole role_id
    • AppRole secret_id
  4. Inyectar respuestas falsificadas de Vault.
  5. Interferir con las operaciones de key-wrapping o key-unwrapping de KMS utilizadas por las reglas de cifrado del Schema Registry.

Esto puede comprometer la confidencialidad e integridad de los datos protegidos por el flujo de trabajo de KMS respaldado por Vault.


Alcance

confluent-kafka es el cliente oficial de Confluent para Python para Apache Kafka.

La vulnerabilidad afecta específicamente a despliegues que utilizan:

root@kitploit:~
Schema Registry encryption rules
        ↓
HCVault KMS integration
        ↓
hcvault:// key URI

Por lo tanto, la población afectada es más reducida que todos los usuarios de confluent-kafka.

Sin embargo, la funcionalidad afectada es sensible a la seguridad porque estos despliegues dependen de HashiCorp Vault para la gestión de claves criptográficas y el cifrado a nivel de campo.


Detalle técnico

HcVaultKmsClient.__init__() analiza una URI de clave hcvault://, determina la URL base de Vault y crea un hvac.Client.

En las versiones afectadas, incluida 2.14.2, el código relevante es:

root@kitploit:~
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
    )

La librería hvac depende en última instancia del stack TLS de requests de Python.

Establecer:

root@kitploit:~
verify=False

indica al cliente que no valide el certificado TLS del servidor remoto.

Como resultado, los certificados que normalmente serían rechazados pueden ser aceptados, incluidos certificados que son:

  • Autofirmados
  • Expirados
  • Emitidos para el nombre de host incorrecto
  • Firmados por una autoridad no confiable
  • Generados por un atacante

Esto afecta a ambas rutas de autenticación soportadas.

Autenticación por token

Cuando se utiliza autenticación por token, el token de Vault se envía a través de la cabecera HTTP:

root@kitploit:~
X-Vault-Token

Si un atacante logra suplantar el endpoint de Vault, el servidor controlado por el atacante puede recibir este token.

Autenticación AppRole

Cuando se utiliza autenticación AppRole, el cliente envía:

root@kitploit:~
role_id
secret_id

a:

root@kitploit:~
/v1/auth/approle/login

Por lo tanto, un MITM exitoso puede capturar ambas credenciales de AppRole.


Configuración TLS ausente

El driver HCVault afectado lee configuración que incluye:

root@kitploit:~
token.id
namespace
approle.role.id
approle.secret.id

así como las variables de entorno VAULT_* relevantes.

Sin embargo, las versiones afectadas no exponen configuración que permita a los operadores:

  • Proporcionar un CA bundle personalizado.
  • Restaurar la verificación del certificado del servidor.
  • Configurar raíces de PKI privadas de confianza.
  • Configurar un comportamiento equivalente de verificación TLS segura.

Como resultado, las aplicaciones que utilizan la integración afectada no pueden restaurar la verificación TLS a través de la configuración normal del paquete.


Causa raíz

El paquete deshabilita explícitamente la verificación del certificado del servidor TLS en lugar de confiar en el valor predeterminado seguro.

La construcción vulnerable es efectivamente:

root@kitploit:~
hvac.Client(..., verify=False)

en lugar de:

root@kitploit:~
hvac.Client(..., verify=True)

o simplemente:

root@kitploit:~
hvac.Client(...)

donde la verificación está habilitada por defecto.

Deshabilitar la verificación de certificados elimina la autenticación del servidor de la conexión TLS.

Aunque la conexión permanece cifrada, el cliente no tiene un mecanismo fiable para determinar si se está comunicando con el servidor de Vault legítimo.

Esto crea la condición necesaria para un ataque de man-in-the-middle de red.


Precondiciones de explotación

La explotación exitosa requiere:

  1. La aplicación utiliza una versión afectada de confluent-kafka:

    • 2.8.0 hasta 2.14.2.
  2. La aplicación utiliza reglas de cifrado del Schema Registry con la integración HCVault KMS.

  3. La clave KMS configurada utiliza el esquema:

root@kitploit:~
hcvault://
  1. El atacante obtiene una posición de red capaz de interceptar, redirigir o suplantar el tráfico entre la aplicación y Vault.

Ejemplos posibles incluyen:

  • DNS spoofing
  • ARP spoofing
  • Infraestructura de red comprometida
  • Infraestructura Wi-Fi o de router maliciosa
  • Manipulación de rutas/BGP
  • Proxy de salida malicioso
  • Segmento de red comprometido

No se requieren privilegios a nivel de aplicación ni interacción de la víctima una vez que existe la posición MITM necesaria.


Prueba de concepto

poc_confluent_kafka.py demuestra el problema contra un wheel de confluent-kafka 2.14.2 desempaquetado localmente.

La PoC utiliza:

  • Un servidor HTTPS autofirmado local que simula HashiCorp Vault.
  • Credenciales de Vault ficticias.
  • La implementación real vulnerable de HcVaultKmsClient.
  • Sin infraestructura real de Kafka.
  • Sin infraestructura real de Vault.
  • Sin credenciales de producción.

La prueba de concepto contiene cinco modos.

ModoDescripción
certGenera un certificado autofirmado y una clave para el Vault simulado local.
serverInicia el Vault HTTPS simulado en https://localhost:8443 y muestra las solicitudes recibidas.
controlControl seguro usando verify=True; debería rechazar el certificado autofirmado con CERTIFICATE_VERIFY_FAILED.
tokenCarga el HcVaultKmsClient vulnerable y demuestra que acepta el certificado no confiable.
approleEjercita la ruta de autenticación AppRole vulnerable y demuestra la exposición de role_id y secret_id.

Configuración

Instala las dependencias de la PoC:

root@kitploit:~
pip install hvac cryptography

Coloca el wheel vulnerable desempaquetado junto a la PoC:

root@kitploit:~
confluent_kafka-2.14.2-cp310-cp310-win_amd64/
└── confluent_kafka/
    └── schema_registry/
        └── ...

La PoC importa HcVaultKmsClient directamente desde el paquete 2.14.2 desempaquetado.

Sustituye dependencias no relacionadas como tink, lo que permite probar la construcción vulnerable del cliente de Vault sin requerir un entorno completo de Kafka o KMS.


Ejecución

Utiliza dos terminales.

Terminal 1 — Iniciar el Vault simulado

root@kitploit:~
python poc_confluent_kafka.py server

El Vault HTTPS simulado escucha en:

root@kitploit:~
https://localhost:8443

utilizando un certificado autofirmado.

Terminal 2 — Control seguro

Primero demuestra que la validación de certificados adecuada rechaza el servidor autofirmado:

root@kitploit:~
python poc_confluent_kafka.py control

Resultado esperado:

root@kitploit:~
EXPECTED TLS failure: CERTIFICATE_VERIFY_FAILED
-> verify=True correctly rejected the self-signed cert

Ruta de token vulnerable

Ejecuta:

root@kitploit:~
python poc_confluent_kafka.py token

El HcVaultKmsClient vulnerable se conecta a pesar de que el servidor presenta un certificado no confiable.

El servidor simulado puede observar el token de Vault:

root@kitploit:~
GET /v1/auth/token/lookup-self
X-Vault-Token: CNA-DEMO-VAULT-TOKEN
X-Vault-Namespace: cna-demo-namespace

Ruta AppRole vulnerable

Ejecuta:

root@kitploit:~
python poc_confluent_kafka.py approle

El Vault simulado recibe:

root@kitploit:~
POST /v1/auth/approle/login
{"role_id": "CNA-DEMO-ROLE-ID", "secret_id": "CNA-DEMO-SECRET-ID"}

El contraste entre el modo control seguro y los modos vulnerables token / approle demuestra que el comportamiento es resultado del:

root@kitploit:~
verify=False

codificado de forma fija, en lugar del entorno de prueba.


Remediación

La corrección segura básica es permitir que hvac realice la verificación de certificados:

root@kitploit:~
hvac.Client(
    url=vault_url,
    token=token,
    namespace=ns
)

Dado que la verificación TLS está habilitada por defecto, deshabilitarla explícitamente es innecesario.

Una implementación robusta debería:

  1. Habilitar la verificación de certificados TLS por defecto.

  2. Soportar un CA bundle configurable, por ejemplo:

root@kitploit:~
ssl.ca.location
  1. Soportar configuración de CA específica de Vault como:
root@kitploit:~
VAULT_CACERT
  1. Soportar certificados de cliente para entornos que utilizan mutual TLS.

  2. Evitar que un valor de configuración vacío o falso deshabilite silenciosamente la verificación de certificados.

  3. Añadir pruebas de regresión que confirmen que los certificados autofirmados y no confiables son rechazados por defecto.


Versión corregida

La vulnerabilidad está corregida en:

root@kitploit:~
confluent-kafka 2.15.0

Las versiones afectadas son:

root@kitploit:~
2.8.0
through
2.14.2

En 2.15.0, el comportamiento del cliente de Vault se modificó para que la verificación TLS esté habilitada por defecto.

La implementación actualizada también introduce configuración relacionada con TLS, incluida:

root@kitploit:~
ssl.ca.location
VAULT_CACERT
ssl.certificate.location
ssl.key.location

Esto permite a los despliegues que utilizan infraestructura PKI privada proporcionar configuración de CA de confianza y certificados de cliente sin deshabilitar la verificación de certificados.


CVSS

La vulnerabilidad tiene una puntuación:

root@kitploit:~
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N

Puntuación CVSS 3.1: 7.4 — Alta

Desglose del vector

AV:N — Red

La comunicación vulnerable con Vault ocurre a través de una conexión de red.

AC:H — Complejidad de ataque alta

El atacante debe obtener una posición MITM de red o redirigir de otro modo la conexión a Vault.

Este es un requisito previo significativo y es la razón por la que la vulnerabilidad se clasifica como Alta en lugar de Crítica.

PR:N — Sin privilegios requeridos

El atacante no requiere privilegios dentro de la aplicación afectada.

UI:N — Sin interacción del usuario

No se requiere interacción del usuario después de que el atacante obtenga la posición de red necesaria.

S:U — Alcance sin cambios

El impacto permanece dentro de la autoridad de seguridad de la aplicación afectada y su interacción con Vault.

C:H — Impacto alto en confidencialidad

Los tokens de Vault o las credenciales de AppRole pueden quedar expuestos al atacante.

I:H — Impacto alto en integridad

El atacante puede suplantar a Vault y devolver respuestas falsificadas de Vault/KMS.

A:N — Sin impacto en disponibilidad

No se demostró ningún impacto directo en la disponibilidad.


Estado

  • Afectado: 2.8.0 hasta 2.14.2
  • Corregido: 2.15.0
  • CWE: CWE-295
  • CVE: Pendiente / aún no asignado

El verify=False codificado de forma fija existió desde la introducción de la integración HCVault hasta la versión 2.14.2.

El comportamiento de seguridad se corrigió en 2.15.0.


Cronología de divulgación

  • YYYY-MM-DD — Reportado a Confluent.
  • 2026-06-26 — Corrección de verificación TLS segura fusionada upstream.
  • Versión corregida publicada como 2.15.0.
  • Asignación de CVE pendiente.

Créditos

Descubierto y reportado por Rahul Karne.


Referencias

  • confluent-kafka-python
    https://github.com/confluentinc/confluent-kafka-python

  • confluent-kafka en PyPI
    https://pypi.org/project/confluent-kafka/

  • Cliente Python hvac de HashiCorp
    https://hvac.readthedocs.io/

  • Autenticación AppRole de HashiCorp Vault
    https://developer.hashicorp.com/vault/api-docs/auth/approle

  • CWE-295 — Validación de certificados incorrecta
    https://cwe.mitre.org/data/definitions/295.html

  • Documentación de TLS / verificación de certificados de Python
    https://docs.python.org/3/library/ssl.html#ssl-security


Acerca de

Este repositorio documenta un hallazgo de seguridad de divulgación coordinada y proporciona una prueba de concepto inofensiva y autocontenida.

La PoC opera completamente contra un servidor de Vault simulado local utilizando credenciales ficticias.

No interactúa con HashiCorp Vault, Kafka, Schema Registry, infraestructura de producción ni credenciales reales.

El material se proporciona para investigación de seguridad defensiva y fines educativos.


Prensa

Consultas de medios: [email protected]. PoC completa (servidor del atacante, archivo de traversal, aplicación víctima) y detalle técnico adicional disponibles bajo petición.

Descargar herramienta