CVE-2026-33186
gRPC-Go tem uma bypass de autorização via barra inicial ausente em :path
- Publicado
- 20 de mar. de 2026
- Atualizado
- 18 de set. de 2026
- Atribuindo CNA
- GitHub_M
- Evidência observada
- 17 de ago. de 2026
CVSS primário
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NBaixo · próximos 30 dias
- Percentil
- 73,7%
- Data do modelo
- 21 de set. de 2026
EPSS é uma estimativa estatística, não uma certeza ou uma medida de impacto. Combine-o com CVSS, status KEV, exposição e seu ambiente.
Resumo
gRPC-Go é a implementação da linguagem Go do gRPC. As versões anteriores à 1.79.3 possuem uma bypass de autorização resultante de validação inadequada de entrada do pseudo-cabeçalho HTTP/2 `:path`. O servidor gRPC-Go era demasiado permissivo na sua lógica de roteamento, aceitando pedidos onde o `:path` omitia a barra inicial obrigatória (por exemplo, `Service/Method` em vez de `/Service/Method`). Embora o servidor roteasse com sucesso esses pedidos para o handler correto, os interceptadores de autorização (incluindo o pacote oficial `grpc/authz`) avaliavam a string de caminho bruta e não canônica. Consequentemente, regras "deny" definidas usando caminhos canônicos (começando com `/`) falhavam ao corresponder ao pedido recebido, permitindo que este contornasse a política se uma regra "allow" de fallback estivesse presente. Isso afeta servidores gRPC-Go que usam interceptadores de autorização baseados em caminho, como a implementação oficial de RBAC em `google.golang.org/grpc/authz` ou interceptadores personalizados que dependem de `info.FullMethod` ou `grpc.Method(ctx)`; E que possuem uma política de segurança contendo regras "deny" específicas para caminhos canônicos, mas que permite outros pedidos por padrão (uma regra "allow" de fallback). A vulnerabilidade é explorável por um atacante que possa enviar frames HTTP/2 brutos com cabeçalhos `:path` malformados diretamente ao servidor gRPC. A correção na versão 1.79.3 garante que qualquer pedido com um `:path` que não comece com uma barra inicial seja imediatamente rejeitado com um erro `codes.Unimplemented`, impedindo que alcance interceptadores de autorização ou handlers com uma string de caminho não canônica. Embora a atualização seja o caminho mais seguro e recomendado, os utilizadores podem mitigar a vulnerabilidade usando um dos seguintes métodos: Usar um interceptador de validação (mitigação recomendada); normalização ao nível da infraestrutura; e/ou endurecimento da política.
Fontes
1Uso responsável
Use informações de vulnerabilidade apenas em sistemas que você possui ou está autorizado a testar. O Kitploit vincula-se a metadados de pesquisa pública e não armazena código de exploração ou cargas maliciosas.