Caddy · Caddy · CVE-2026-77281
**Nome do Software Vulnerável e Versões Afetadas**
Caddy versões anteriores a 2.11.4
**Description**
Três fraquezas dependentes de configuração afetam a camada de manipulador (handler) e de espaços reservados (placeholder).
Primeiro, na função `Rewrite.Rewrite()` em `modules/caddyhttp/rewrite/rewrite.go`, ocorre um problema de expansão dupla quando uma URI de reescrita termina com um ponto de interrogação literal. Bytes controlados por um invasor podem ser passados através de `buildQueryString`, desencadeando uma segunda expansão de placeholder. Isso permite a divulgação de variáveis de ambiente via `{env.X}`, variáveis de requisição via `{vars.X}` e arquivos legíveis via `{file./path}`, caso o provedor de arquivos esteja registrado.
Segundo, existe um problema de exaustão de memória ao usar o placeholder `{http.request.body}`. O sistema lê todo o corpo da requisição para um slice de bytes sem um `LimitReader`, permitindo que um invasor envie um corpo de tamanho arbitrário para causar uma condição de Out-of-Memory (OOM) e travar o processo.
Terceiro, a função `fileHidden()` em `modules/caddyhttp/fileserver/staticfiles.go` utiliza correspondência sensível a maiúsculas e minúsculas via `filepath.Match`. Em sistemas de arquivos insensíveis a maiúsculas/minúsculas (como macOS APFS e Windows NTFS), invasores podem ignorar a diretiva `hide` usando variações em maiúsculas dos nomes de arquivos ou diretórios ocultos (por exemplo, acessando `.GIT` em vez de `.git`), levando à divulgação de arquivos sensíveis como `.env` ou diretórios `.git`.
**Recommendations**
Atualize o Caddy para a versão 2.11.4.
Como mitigação temporária para o problema de reescrita, evite usar URIs de reescrita que terminem com um ponto de interrogação literal.
Como mitigação temporária para o problema de exaustão de memória, evite usar o placeholder `{http.request.body}` em configurações, como em `log append` ou correspondências CEL, até que a atualização seja aplicada.