Amazon · Amazon S3 · CVE-2024-29034
**Nome do software vulnerável e versões afetadas**
Versões do CarrierWave anteriores à 2.2.6
Versões do CarrierWave anteriores à 3.0.7
**Descrição**
O problema é causado pelo fato de que, ao fazer upload para um armazenamento de objetos, incluindo o Amazon S3, é possível definir um valor de Content-Type que é interpretado pelos navegadores como diferente do permitido por `content type allowlist`, fornecendo vários valores separados por vírgulas. Esse valor contornado pode ser usado para causar XSS.
**Recomendações**
Para versões do CarrierWave anteriores à 2.2.6, atualize para a 2.2.6.
Para versões do CarrierWave anteriores à 3.0.7, atualize para a 3.0.7.
Como solução temporária, considere usar o patch de contingência fornecido para permitir que o CarrierWave analise o tipo de conteúdo usando `Marcel::MimeType.for`.
Para o CarrierWave 3.x, use o seguinte patch de contingência:
```ruby
CarrierWave::SanitizedFile.class eval do
def declared content type
@declared content type ||
if @file.respond to?(:content type) && @file.content type
Marcel::MimeType.for(declared type: @file.content type.to s.chomp)
end
end
end
```
Para o CarrierWave 2.x, use o seguinte patch:
```ruby
CarrierWave::SanitizedFile.class eval do
def existing content type
if @file.respond to?(:content type) && @file.content type
Marcel::MimeType.for(declared type: @file.content type.to s.chomp)
end
end
end
```