Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-57836-Confluent_Kafka — Deaktivierte TLS-Zertifikatsüberprüfung für HashiCorp Vault KMS in confluent-kafka | Kitploit
Tools/GitHubGitHub/rahulreddykarne/cve-2026-57836-confluent_kafka
DefensivwerkzeugeSchwachstellenanalyseSicherheitsvirtualisierungWebsicherheitKryptographieCloud-SicherheitLernen & Bildung
GitHubrahulreddykarne/cve-2026-57836-confluent_kafka

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

CVE-2026-57836-Confluent_Kafka

Deaktivierte TLS-Zertifikatsüberprüfung für HashiCorp Vault KMS in confluent-kafka

Repository anzeigen
vor 1 TagNoch nicht geprüft
Teilen

CVE-2026-57836: Deaktivierte TLS-Zertifikatsüberprüfung für HashiCorp Vault KMS in confluent-kafka

Schweregrad: Hoch, CVSS 3.1 7.4

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

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

Behoben in: 2.15.0

CWE: CWE-295 (Improper Certificate Validation)

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

Gemeldet von: Rahul Karne

CNA: VulnCheck


Zusammenfassung

Der HashiCorp Vault KMS-Client in confluent-kafka hardcodiert verify=False bei der Konstruktion seines , wodurch die TLS-Zertifikatsüberprüfung für Vault-HTTPS-Verbindungen deaktiviert wird, die über die Field-Encryption-Regeln der Schema Registry hergestellt werden.

hvac.Client

Der verwundbare Code befindet sich in:

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

Der betroffene Client wird wie folgt initialisiert:

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

Da verify=False bedingungslos gesetzt ist, akzeptiert der Client nicht vertrauenswürdige TLS-Zertifikate, einschließlich selbstsignierter oder von Angreifern kontrollierter Zertifikate.

Ein Angreifer mit Netzwerkposition, der in der Lage ist, den Vault-Datenverkehr der Anwendung abzufangen oder umzuleiten, kann sich als Vault-Server ausgeben, Vault-Authentifizierungsdaten erbeuten und gefälschte Vault/KMS-Antworten zurückgeben.

Die betroffene HCVault-Integration bietet Konfigurationsmöglichkeiten für Vault-Tokens, Namespaces und AppRole-Anmeldedaten, aber betroffene Versionen bieten keine unterstützte CA-Bundle-Konfiguration oder einen gleichwertigen Mechanismus zur Wiederherstellung der Zertifikatsüberprüfung.


Auswirkung

Ein Angreifer mit einer Man-in-the-Middle-Position im Netzwerk zwischen der Anwendung und HashiCorp Vault kann:

  1. Ein von ihm kontrolliertes oder selbstsigniertes TLS-Zertifikat präsentieren.
  2. Dieses Zertifikat akzeptiert bekommen, weil die Überprüfung deaktiviert ist.
  3. Vault-Authentifizierungsmaterial erbeuten, einschließlich:
    • X-Vault-Token
    • AppRole role_id
    • AppRole secret_id
  4. Gefälschte Vault-Antworten einspeisen.
  5. KMS-Schlüsselverpackungs- oder Schlüsselentpackungsvorgänge beeinträchtigen, die von den Schema-Registry-Verschlüsselungsregeln verwendet werden.

Dies kann die Vertraulichkeit und Integrität von Daten kompromittieren, die durch den Vault-gestützten KMS-Workflow geschützt sind.


Reichweite

confluent-kafka ist der offizielle Confluent-Python-Client für Apache Kafka.

Die Schwachstelle betrifft speziell Bereitstellungen, die Folgendes verwenden:

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

Die betroffene Nutzergruppe ist daher kleiner als alle confluent-kafka-Benutzer.

Die betroffene Funktionalität ist jedoch sicherheitskritisch, da diese Bereitstellungen auf HashiCorp Vault für kryptografisches Schlüsselmanagement und Field-Level-Verschlüsselung angewiesen sind.


Technisches Detail

HcVaultKmsClient.__init__() parst eine hcvault://-Schlüssel-URI, bestimmt die Vault-Basis-URL und erstellt einen hvac.Client.

In betroffenen Versionen, einschließlich 2.14.2, lautet der relevante Code:

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
    )

Die hvac-Bibliothek stützt sich letztlich auf den TLS-Stack von Python requests.

Die Einstellung:

root@kitploit:~
verify=False

weist den Client an, das TLS-Zertifikat des Remote-Servers nicht zu validieren.

Infolgedessen können Zertifikate akzeptiert werden, die normalerweise abgelehnt würden, einschließlich Zertifikaten, die:

  • Selbstsigniert sind
  • Abgelaufen sind
  • Für den falschen Hostnamen ausgestellt wurden
  • Von einer nicht vertrauenswürdigen Zertifizierungsstelle signiert wurden
  • Von einem Angreifer generiert wurden

Dies betrifft beide unterstützten Authentifizierungspfade.

Token-Authentifizierung

Wenn Token-Authentifizierung verwendet wird, wird das Vault-Token über den HTTP-Header:

root@kitploit:~
X-Vault-Token

gesendet.

Wenn ein Angreifer sich erfolgreich als Vault-Endpunkt ausgibt, kann der vom Angreifer kontrollierte Server dieses Token empfangen.

AppRole-Authentifizierung

Wenn AppRole-Authentifizierung verwendet wird, sendet der Client:

root@kitploit:~
role_id
secret_id

an:

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

Ein erfolgreicher MITM kann daher beide AppRole-Anmeldedaten erbeuten.


Fehlende TLS-Konfiguration

Der betroffene HCVault-Treiber liest Konfigurationen einschließlich:

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

sowie relevante VAULT_*-Umgebungsvariablen.

Betroffene Versionen bieten jedoch keine Konfiguration, die es Betreibern ermöglicht:

  • Ein benutzerdefiniertes CA-Bundle bereitzustellen.
  • Die Server-Zertifikatsüberprüfung wiederherzustellen.
  • Vertrauenswürdige private PKI-Roots zu konfigurieren.
  • Ein gleichwertiges sicheres TLS-Überprüfungsverhalten zu konfigurieren.

Infolgedessen können Anwendungen, die die betroffene Integration verwenden, die TLS-Überprüfung nicht über die normale Paketkonfiguration wiederherstellen.


Grundursache

Das Paket deaktiviert explizit die TLS-Server-Zertifikatsüberprüfung, anstatt sich auf den sicheren Standard zu verlassen.

Die verwundbare Konstruktion ist effektiv:

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

anstelle von:

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

oder einfach:

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

wobei die Überprüfung standardmäßig aktiviert ist.

Das Deaktivieren der Zertifikatsüberprüfung entfernt die Server-Authentifizierung aus der TLS-Verbindung.

Obwohl die Verbindung verschlüsselt bleibt, hat der Client keinen zuverlässigen Mechanismus, um festzustellen, ob er mit dem legitimen Vault-Server kommuniziert.

Dies schafft die Voraussetzung für einen Man-in-the-Middle-Angriff im Netzwerk.


Ausnutzungsvoraussetzungen

Eine erfolgreiche Ausnutzung erfordert:

  1. Die Anwendung verwendet eine betroffene Version von confluent-kafka:

    • 2.8.0 bis 2.14.2.
  2. Die Anwendung verwendet Schema-Registry-Verschlüsselungsregeln mit der HCVault KMS-Integration.

  3. Der konfigurierte KMS-Schlüssel verwendet das Schema:

root@kitploit:~
hcvault://
  1. Der Angreifer erlangt eine Netzwerkposition, die in der Lage ist, den Datenverkehr zwischen der Anwendung und Vault abzufangen, umzuleiten oder sich als dieser auszugeben.

Mögliche Beispiele sind:

  • DNS-Spoofing
  • ARP-Spoofing
  • Kompromittierte Netzwerkinfrastruktur
  • Rogue-Wi-Fi- oder Router-Infrastruktur
  • Route/BGP-Manipulation
  • Bösartiger Egress-Proxy
  • Kompromittiertes Netzwerksegment

Sobald die erforderliche MITM-Position besteht, sind keine Berechtigungen auf Anwendungsebene oder Interaktion des Opfers erforderlich.


Proof of Concept

poc_confluent_kafka.py demonstriert das Problem gegen ein lokal entpacktes confluent-kafka 2.14.2-Wheel.

Das PoC verwendet:

  • Einen lokalen selbstsignierten HTTPS-Server, der HashiCorp Vault simuliert.
  • Dummy-Vault-Anmeldedaten.
  • Die echte verwundbare HcVaultKmsClient-Implementierung.
  • Keine echte Kafka-Infrastruktur.
  • Keine echte Vault-Infrastruktur.
  • Keine Produktions-Anmeldedaten.

Das Proof of Concept enthält fünf Modi.

ModusBeschreibung
certGeneriert ein selbstsigniertes Zertifikat und einen Schlüssel für den lokalen Mock-Vault.
serverStartet den Mock-HTTPS-Vault auf https://localhost:8443 und zeigt empfangene Anfragen an.
controlSichere Kontrolle mit verify=True; sollte das selbstsignierte Zertifikat mit CERTIFICATE_VERIFY_FAILED ablehnen.
tokenLädt den verwundbaren HcVaultKmsClient und demonstriert, dass er das nicht vertrauenswürdige Zertifikat akzeptiert.
approleÜbt den verwundbaren AppRole-Authentifizierungspfad aus und demonstriert die Offenlegung von role_id und secret_id.

Einrichtung

Installieren Sie die PoC-Abhängigkeiten:

root@kitploit:~
pip install hvac cryptography

Platzieren Sie das entpackte verwundbare Wheel neben dem PoC:

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

Das PoC importiert HcVaultKmsClient direkt aus dem entpackten 2.14.2-Paket.

Es stubbt nicht zusammenhängende Abhängigkeiten wie tink, wodurch die verwundbare Vault-Client-Konstruktion getestet werden kann, ohne eine vollständige Kafka- oder KMS-Umgebung zu benötigen.


Ausführung

Verwenden Sie zwei Terminals.

Terminal 1 — Mock-Vault starten

root@kitploit:~
python poc_confluent_kafka.py server

Der Mock-HTTPS-Vault lauscht auf:

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

unter Verwendung eines selbstsignierten Zertifikats.

Terminal 2 — Sichere Kontrolle

Demonstrieren Sie zunächst, dass eine ordnungsgemäße Zertifikatsvalidierung den selbstsignierten Server ablehnt:

root@kitploit:~
python poc_confluent_kafka.py control

Erwartetes Ergebnis:

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

Verwundbarer Token-Pfad

Führen Sie aus:

root@kitploit:~
python poc_confluent_kafka.py token

Der verwundbare HcVaultKmsClient verbindet sich, obwohl der Server ein nicht vertrauenswürdiges Zertifikat präsentiert.

Der Mock-Server kann das Vault-Token beobachten:

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

Verwundbarer AppRole-Pfad

Führen Sie aus:

root@kitploit:~
python poc_confluent_kafka.py approle

Der Mock-Vault empfängt:

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

Der Kontrast zwischen dem sicheren control-Modus und den verwundbaren token- / approle-Modi zeigt, dass das Verhalten aus dem hardcodierten:

root@kitploit:~
verify=False

resultiert und nicht aus der Testumgebung.


Behebung

Die grundlegende sichere Korrektur besteht darin, hvac die Zertifikatsüberprüfung durchführen zu lassen:

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

Da die TLS-Überprüfung standardmäßig aktiviert ist, ist eine explizite Deaktivierung unnötig.

Eine robuste Implementierung sollte:

  1. Die TLS-Zertifikatsüberprüfung standardmäßig aktivieren.

  2. Ein konfigurierbares CA-Bundle unterstützen, zum Beispiel:

root@kitploit:~
ssl.ca.location
  1. Vault-spezifische CA-Konfiguration unterstützen, wie zum Beispiel:
root@kitploit:~
VAULT_CACERT
  1. Client-Zertifikate für Umgebungen mit gegenseitigem TLS unterstützen.

  2. Verhindern, dass ein leerer oder falscher Konfigurationswert die Zertifikatsüberprüfung stillschweigend deaktiviert.

  3. Regressionstests hinzufügen, die bestätigen, dass selbstsignierte und anderweitig nicht vertrauenswürdige Zertifikate standardmäßig abgelehnt werden.


Behobene Version

Die Schwachstelle ist behoben in:

root@kitploit:~
confluent-kafka 2.15.0

Betroffene Versionen sind:

root@kitploit:~
2.8.0
through
2.14.2

In 2.15.0 wurde das Verhalten des Vault-Clients so geändert, dass die TLS-Überprüfung standardmäßig aktiviert ist.

Die aktualisierte Implementierung führt außerdem TLS-bezogene Konfigurationen ein, einschließlich:

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

Dies ermöglicht Bereitstellungen mit privater PKI-Infrastruktur, vertrauenswürdige CA- und Client-Zertifikatskonfigurationen bereitzustellen, ohne die Zertifikatsüberprüfung zu deaktivieren.


CVSS

Die Schwachstelle wird bewertet mit:

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

CVSS 3.1 Score: 7.4 — Hoch

Vektor-Aufschlüsselung

AV:N — Netzwerk

Die verwundbare Vault-Kommunikation erfolgt über eine Netzwerkverbindung.

AC:H — Hohe Angriffskomplexität

Der Angreifer muss eine Netzwerk-MITM-Position erlangen oder die Vault-Verbindung anderweitig umleiten.

Dies ist eine erhebliche Voraussetzung und der Grund, warum die Schwachstelle als Hoch statt Kritisch eingestuft wird.

PR:N — Keine Berechtigungen erforderlich

Der Angreifer benötigt keine Berechtigungen innerhalb der betroffenen Anwendung.

UI:N — Keine Benutzerinteraktion

Nachdem der Angreifer die erforderliche Netzwerkposition erlangt hat, ist keine Benutzerinteraktion erforderlich.

S:U — Scope Unchanged

Die Auswirkung bleibt innerhalb der Sicherheitsautorität der betroffenen Anwendung und ihrer Vault-Interaktion.

C:H — Hohe Vertraulichkeitsauswirkung

Vault-Tokens oder AppRole-Anmeldedaten können für den Angreifer offengelegt werden.

I:H — Hohe Integritätsauswirkung

Der Angreifer kann sich als Vault ausgeben und gefälschte Vault/KMS-Antworten zurückgeben.

A:N — Keine Verfügbarkeitsauswirkung

Es wurde keine direkte Verfügbarkeitsauswirkung nachgewiesen.


Status

  • Betroffen: 2.8.0 bis 2.14.2
  • Behoben: 2.15.0
  • CWE: CWE-295
  • CVE: Ausstehend / noch nicht zugewiesen

Das hardcodierte verify=False existierte seit der Einführung der HCVault-Integration bis Version 2.14.2.

Das Sicherheitsverhalten wurde in 2.15.0 korrigiert.


Offenlegungs-Zeitplan

  • YYYY-MM-DD — An Confluent gemeldet.
  • 2026-06-26 — Sichere TLS-Überprüfungs-Korrektur upstream zusammengeführt.
  • Behobene Version als 2.15.0 veröffentlicht.
  • CVE-Zuweisung ausstehend.

Danksagung

Entdeckt und gemeldet von Rahul Karne.


Referenzen

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

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

  • HashiCorp hvac Python-Client
    https://hvac.readthedocs.io/

  • HashiCorp Vault AppRole-Authentifizierung
    https://developer.hashicorp.com/vault/api-docs/auth/approle

  • CWE-295 — Improper Certificate Validation
    https://cwe.mitre.org/data/definitions/295.html

  • Python TLS / Zertifikatsüberprüfungs-Dokumentation
    https://docs.python.org/3/library/ssl.html#ssl-security


Über

Dieses Repository dokumentiert einen Sicherheitsbefund aus einer koordinierten Offenlegung und stellt ein harmloses, in sich geschlossenes Proof of Concept bereit.

Das PoC arbeitet ausschließlich gegen einen lokalen Mock-Vault-Server mit Dummy-Anmeldedaten.

Es interagiert nicht mit echtem HashiCorp Vault, Kafka, Schema Registry, Produktionsinfrastruktur oder echten Anmeldedaten.

Das Material wird für defensive Sicherheitsforschung und Bildungszwecke bereitgestellt.


Presse

Medienanfragen: [email protected]. Vollständiges PoC (Angreifer-Server, Traversal-Archiv, Opfer-Anwendung) und zusätzliche technische Details auf Anfrage erhältlich.

Tool herunterladen