O gestor de webhook de admissão do Kubernetes lê todo o corpo de solicitação usando `io.ReadAll(r.Corpo)` sem qualquer limite de tamanho. Qualquer cliente que possa alcançar a porta webhook dentro do cluster pode enviar uma carga útil multi- GB, fazendo com que o processo do capitão escape a memória e seja morto pela OOM. Isto interrompe todo o controle de entrada do Kubernetes, potencialmente bloqueando a criação e atualizações de todas as cápsulas. ``` go // dataclients/kubernetes/admission/admission.go: 76 corpo, err:= io.LeiaAll(r.Corpo) // <-- NENHUNS LIMITE DE TAXA se err!= nul { log.Error("Funtou ler a solicitação:%v", err) w.WriteHeader(http.StatusInternalServerError) inválidoPetições.ComLabelValues(admitterName).Inc() retorna } rever var admissionReview err = json.Unmarshal(body, & review) ```. Para comparação, o filtro OPA tem um limite de tamanho corporal:.

```go // filters/openpolicyagent/openpolicyagent.go: 68 - 70 const PadrãoMaxRequestBodySize = 1 << 20 // 1 MB // OPA usa um bufferedBodyReader com limites de tamanho ```. 1. O atacante identifica o objetivo da admissão webhook (por omissão: `: 9443 /admissão` ou caminho configurado) 2. O atacante envia: ` POST / admission HTTP/ 1.1, Tipo de Conteúdo: aplicativo/json` com um corpo de solicitação multi-GB 3. `io.ReadAll(r.Corpo)` aloca a memória não delimitada para todo o corpo 4. O processo Skipper é morto pela OOM pelo Kubernetes ## Análise da Límite de Permissão. - **Attacker**: Qualquer cliente com acesso à rede ao porto webhook de admissão dentro do cluster Kubernetes - **Limite cruzado**: Segurança da memória — alocação livre da entrada controlada pelo atacante - **Precondições**: O endpoint webhook de admissão deve ser reachável à rede (a implantação de Kubernetes por omissão expõe- o dentro da rede de cluster) - **Comparação**: OPA filtro tem `DefaultMaxRequestBodySize` ( 1 MB) e limite de memória baseado em semaforo; o manipulador de admissão não tem nenhum.

Arquivo Linhas Descrição do arquivo 76 "io.ReadAll(r.Corpo)` sem limite de tamanho "#filters/openpolicyagent/openpolicyagent.go`` 68 - 70.O filtro OPA tem `DefaultMaxRequestBodySize` = 1 MBї `filters/openpolicyagent/openpolicyagent.go`. 1333 - 1336 OPA usa `BodyReader' buffered com limites de tamanho - `dataclients/kubernetes/admission/admission_test.go` existe, mas ** não testa limites de tamanho corporal**. O operador do webhook de admissão lê todo o corpo do pedido usando io. ReadAll(r.Corpo) sem um limite de tamanho. Um atacante com acesso à rede no grupo e um certificado de cliente do Kubernetes válido pode enviar uma carga útil multi- GB para o endpoint webhook, fazendo com que o processo do capitão escape a memória e seja morto pelo OOM. Isto interrompe o controle de entrada para recursos Ingress e RouteGroup até que o processo seja reiniciado automaticamente pelo kubelet. Âmbito de impacto: Entrada e admissão do RouteGroup apenas — não criação de pod ou outros controladores de admissão.

Recuperação: o Kubernetes reinicia automaticamente o processo morto pela OOM, limitando o tempo de parada. Prerequisitos: ( 1 ) Acesso da rede de agrupamentos ao porto webhook, ( 2 ) certificado de cliente Kubernetes válido.

1. Adicionar `http.MaxBytesReader` ou limite de tamanho corporal equivalente antes de `io.Leia tudo` 2. Siga o padrão de filtro OPA: definir `DefaultMaxRequestBodySize` e usar um leitor buffer com limites de tamanho 3. Adicione uma bandeira configurable `--admissão-max-tamanho- corpo` Registro de aconselhamento: GHSA-cwxq-rc 9 x- 2 - O que é isso? Identificadores relacionados: CVE- 2026 - 54247.

Tempo: GitHub Advisory Database publicou este registro em 2026 - 07 - 17 T 18: 14: 08.000 Z e lista a sua última modificação como 2026 - 07 - 17 T 18: 14: 08.000 Z. Gravidade: MODERAR. Dados de pontuação publicados: CVSS_V 3: CVSS: 3.1 /AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L.

Software afetado e informações de versão: Vá pacote github.com/zalando/skipper — ECOSISTEM: introduzido 0, corrigido 0.26.22. Classificação e evidência: identificadores de fraqueza CWE- 770. O registro contém 3 suporte de referências nestes tipos: WEB, PACKAGE.