PT-2026-46304 · Pypi · Webob
CVSS v3.1
6.1
Média
| Vetor | AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N |
Nome do Software Vulnerável e Versões Afetadas
WebOb versões anteriores a 1.8.10
Description
Um redirecionamento aberto ocorre quando o software normaliza o cabeçalho HTTP Location para incluir o nome do host da requisição. O processo envolve a análise da URL de redirecionamento usando o
urllib.parse do Python e a junção desta à URL base. Como o urlsplit (chamado internamente pelo urljoin) trata um // no início de uma string como uma URI sem esquema, ele interpreta a parte seguinte como o nome do host, substituindo o nome do host original da requisição.Embora tenha sido feita uma tentativa anterior de mitigar isso substituindo
// por /%2f, o urlsplit do Python 3.10 e versões posteriores removem internamente caracteres de tabulação ASCII, retorno de carro e nova linha. Consequentemente, uma string como /t/attacker.com é convertida em //attacker.com, ignorando a correção anterior e permitindo o redirecionamento para um domínio externo.Recommendations
Atualize para a versão 1.8.10.
Como medida paliativa temporária, reescreva qualquer uso da classe
Response que inclua um location para garantir que seja passada uma URI completa incluindo o nome do host, ou valide se o destino do redirecionamento começa com um esquema como http:// ou https:// antes de atribuí-lo ao Response.location.Exploit
Correção
Open Redirect
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Webob