PT-2026-60901 · Pypi · Flask-Reuploaded
CVE-2026-54567
·
Publicado
2026-07-17
·
Atualizado
2026-07-23
CVSS v3.1
7.5
Alta
| Vetor | AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H |
Nome do Software Vulnerável e Versões Afetadas
Flask-Reuploaded versões anteriores a 1.5.1
Descrição
Existe um problema na função
UploadSet.save() onde o parâmetro name pode ser utilizado para ignorar listas de permissões (denylists) de extensões. Quando um usuário fornece uma substituição de name, o sistema realiza uma revalidação usando um auxiliar extension() que preserva a caixa, em vez do auxiliar lowercase ext() que normaliza para letras minúsculas, utilizado no caminho de upload padrão. Essa assimetria permite que invasores façam upload de arquivos com extensões proibidas usando nomes de arquivos com letras maiúsculas e minúsculas misturadas (ex: shell.PHP ou evil.pHp), pois a verificação contra a denylist em letras minúsculas retorna verdadeiro para variantes em maiúsculas. Em servidores que executam arquivos sem distinguir maiúsculas de minúsculas, como Windows, macOS ou configurações específicas do Apache, isso pode levar à execução remota de código.Recomendações
Para versões anteriores a 1.5.1, normalize a extensão para letras minúsculas antes da verificação de política, utilizando
extension(basename).lower() ou lowercase ext(basename) dentro da função UploadSet.save().
Como mitigação temporária, evite passar valores influenciados pelo usuário para o parâmetro name na função save().Correção
Unrestricted File Upload
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Flask-Reuploaded