
Passo a passo: Injeção de Configuração no ingress-nginx via Anotação rewrite-target
Palavras-chave: CVE-2026-3288, vulnerabilidade do ingress-nginx, segurança do Kubernetes, injeção de configuração nginx, anotação rewrite-target, RCE, divulgação de Secret, CWE-20, CAPEC-176, ingress-nginx CVE 2026, comprometimento de cluster Kubernetes
Uma vulnerabilidade de segurança foi descoberta no ingress-nginx onde a anotação nginx.ingress.kubernetes.io/rewrite-target do Ingress pode ser usada para injetar configuração no nginx. Isso pode levar à execução arbitrária de código no contexto do controlador ingress-nginx e à divulgação de Secrets acessíveis ao controlador. (Note que na instalação padrão, o controlador pode acessar todos os Secrets em todo o cluster.)
Descoberto por: Kai Aizen
Publicado: 9 de março de 2026
Pontuação CVSS: 8.8 (Alta)
CWE: CWE-20 — Validação de Entrada Incorreta
CAPEC: CAPEC-176 — Manipulação de Configuração/Ambiente
Componente: ingress-nginx
Tipo de Ataque: Injeção de Configuração Nginx via Anotação de Ingress
Privilégios Necessários: Baixo (PR:L)
A anotação nginx.ingress.kubernetes.io/rewrite-target do Ingress tem como objetivo modificar o caminho da requisição antes de ser encaminhada para os serviços upstream. No entanto, a implementação permite a injeção de diretivas de configuração arbitrárias diretamente na configuração subjacente do nginx.
Um atacante com capacidade de criar ou modificar recursos Ingress pode explorar isso para:
| Área de Impacto | Gravidade |
|---|---|
| Confidencialidade | Alta — Divulgação total de Secrets (em todo o cluster na configuração padrão) |
| Integridade | Alta — Execução arbitrária de código no contexto do controlador |
| Disponibilidade | Alta — Comprometimento total do controlador ingress-nginx |
O problema central é que o ingress-nginx processa o valor da anotação rewrite-target sem validação de entrada suficiente, permitindo que conteúdo controlado pelo atacante seja escrito diretamente na configuração do nginx. Esta é uma vulnerabilidade de injeção de configuração — o valor da anotação é confiável como um simples caminho de reescrita, mas pode conter diretivas arbitrárias do nginx.
A vulnerabilidade é acessível por qualquer usuário com permissões para criar ou modificar recursos Ingress em um cluster executando ingress-nginx. O ataque requer:
Esta vulnerabilidade pertence a uma classe bem estabelecida de bugs de injeção de anotações no ingress-nginx:
| CVE | Ano | Anotação | Impacto |
|---|---|---|---|
| CVE-2021-25746 | 2022 | Várias anotações | Injeção de diretivas |
| CVE-2023-5044 | 2023 | permanent-redirect | Injeção de código |
| CVE-2024-7646 | 2024 | Bypass de validação de anotação | Bypass de validação |
| CVE-2026-3288 | 2026 | rewrite-target | RCE + divulgação de Secret |
O padrão recorrente: valores de anotações fluem para a configuração do nginx sem sanitização adequada. Anotações diferentes, mesma causa raiz.
| Branch | Vulnerável | Corrigida |
|---|---|---|
| 1.13.x | < 1.13.8 | 1.13.8 |
| 1.14.x | < 1.14.4 | 1.14.4 |
| 1.15.x | < 1.15.0 | 1.15.0 |
# Verifique se o ingress-nginx está instalado
kubectl get pods --all-namespaces --selector app.kubernetes.io/name=ingress-nginx
# Verifique a versão do ingress-nginx
kubectl exec -n ingress-nginx \
$(kubectl get pods -n ingress-nginx -l app.kubernetes.io/name=ingress-nginx -o jsonpath='{.items[0].metadata.name}') \
-- /nginx-ingress-controller --version
Se você não tiver o ingress-nginx instalado no seu cluster, você não está afetado.
Atualize o ingress-nginx para a versão corrigida do seu branch:
# Usando Helm
helm upgrade ingress-nginx ingress-nginx/ingress-nginx \
--namespace ingress-nginx \
--version <versão-do-chart-corrigida>
Consulte a documentação oficial de atualização: Atualizando o Ingress-nginx
Use controle de admissão para bloquear o uso da anotação rewrite-target até que você possa atualizar:
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
name: block-rewrite-target
webhooks:
- name: block-rewrite-target.security.local
rules:
- apiGroups: ["networking.k8s.io"]
apiVersions: ["v1"]
operations: ["CREATE", "UPDATE"]
resources: ["ingresses"]
clientConfig:
# Aponte para um serviço de webhook que rejeite recursos Ingress
# contendo a anotação rewrite-target
Dados suspeitos dentro do campo rules.http.paths.path de um recurso Ingress podem indicar uma tentativa de explorar esta vulnerabilidade.
# Verifique anotações suspeitas de Ingress
kubectl get ingress --all-namespaces -o json | \
jq '.items[] | select(.metadata.annotations["nginx.ingress.kubernetes.io/rewrite-target"] != null) | {namespace: .metadata.namespace, name: .metadata.name, rewrite: .metadata.annotations["nginx.ingress.kubernetes.io/rewrite-target"]}'
Se você encontrar evidências de que esta vulnerabilidade foi explorada, entre em contato com [email protected].
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
| Métrica | Valor |
|---|---|
| Vetor de Ataque | Rede (AV:N) |
| Complexidade do Ataque | Baixa (AC:L) |
| Privilégios Necessários | Baixo (PR:L) |
| Interação do Usuário | Nenhuma (UI:N) |
| Escopo | Inalterado (S:U) |
| Confidencialidade | Alta (C:H) |
| Integridade | Alta (I:H) |
| Disponibilidade | Alta (A:H) |
| Data | Evento |
|---|---|
| — | Vulnerabilidade descoberta e relatada ao Kubernetes Security Response Committee |
| 9 de março de 2026 | Advisory de segurança publicado |
| 9 de março de 2026 | Versões corrigidas lançadas (1.13.8, 1.14.4, 1.15.0) |
| 9 de março de 2026 | CVE-2026-3288 atribuído |
Pesquisador: Kai Aizen — SnailSploit
Agradecimento: Tabitha Sable em nome do Kubernetes Security Response Committee
Esta informação é fornecida apenas para fins de pesquisa de segurança e defesa. Qualquer exploração desta vulnerabilidade para fins maliciosos é ilegal e antiética. Sempre obtenha autorização adequada antes de testar sistemas que você não possui.
Para perguntas ou informações adicionais sobre esta vulnerabilidade:
Última atualização: 10 de março de 2026
O artigo completo deste projeto, metodologia e pesquisas relacionadas estão disponíveis em:
Criado por Kai Aizen — pesquisador independente de segurança ofensiva.
snailsploit.com · Research · Frameworks · GitHub · LinkedIn · ResearchGate · X/Twitter
Mesmo ataque. Substrato diferente.