PT-2025-45119 · Django+4 · Django+4
CVSS v2.0
9.4
Crítica
| Vetor | AV:N/AC:L/Au:N/C:C/I:C/A:N |
Nome do Software Vulnerável e Versões Afetadas
Django versões 5.1 até 5.1.13
Django versões 4.2 até 4.2.25
Django versões 5.2 até 5.2.7
Django versões 5.0.x e anteriores
Django versões 4.1.x e anteriores
Django versões 3.2.x e anteriores
Description
Existe um problema nos métodos
QuerySet.filter(), QuerySet.exclude() e QuerySet.get(), bem como na classe Q(), que os torna suscetíveis a injeção de SQL. Isso ocorre quando um dicionário adequadamente manipulado é utilizado com expansão de dicionário como o argumento connector. Um invasor pode explorar isso passando parâmetros de consulta internos através de strings de consulta de URL ou dados POST que são então passados diretamente para esses métodos. Isso pode levar à manipulação da lógica do banco de dados, como a alteração da lógica AND para OR, resultando potencialmente em bypass de autenticação, escalonamento de privilégios e a divulgação ou modificação não autorizada de informações protegidas.Recommendations
Atualizar as versões do Django 5.1 até 5.1.13 para a versão 5.1.14.
Atualizar as versões do Django 4.2 até 4.2.25 para a versão 4.2.26.
Atualizar as versões do Django 5.2 até 5.2.7 para a versão 5.2.8.
Evitar a passagem de dados controlados pelo usuário, como
request.GET.dict(), diretamente para os métodos QuerySet via expansão de dicionário.
Implementar a lista branca (whitelisting) de parâmetros de filtragem permitidos ou usar o mapeamento explícito de campos em vez da expansão de dicionário.
Utilizar Django Forms para validar os dados de entrada.
Como mitigação temporária, restringir ou auditar o uso dos parâmetros connector e negated em requisições recebidas.Exploit
Correção
DoS
SQL injection
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Debian
Django
Linuxmint
Red Os
Ubuntu