Nome do Software Vulnerável e Versões Afetadas
Rack versões anteriores a 2.2.23, 3.1.21 e 3.2.6
Descrição
A função `Rack::Files#fail` do Rack calcula incorretamente o cabeçalho de resposta `Content-Length` usando `String#size` em vez de `String#bytesize`. Isso ocorre quando o corpo da resposta contém caracteres UTF-8 multibyte, resultando em um `Content-Length` declarado menor que o número real de bytes enviados. Um invasor pode acionar isso solicitando um caminho inexistente com caracteres UTF-8 codificados em porcentagem, levando a um enquadramento de resposta HTTP incorreto e possível dessincronização de resposta. O componente `Rack::Files` reflete o caminho solicitado em respostas 404, o que contribui para o problema ao lidar com solicitações com caracteres multibyte. Isso pode causar inconsistências na análise da resposta ou dessincronização, especialmente em implantações com conexões persistentes e intermediários que dependem do cabeçalho `Content-Length`.
Recomendações
Atualize para a versão 2.2.23 ou posterior do Rack.
Atualize para a versão 3.1.21 ou posterior do Rack.
Atualize para a versão 3.2.6 ou posterior do Rack.