CVE-2020-15225highCWE-681

CVE-2020-15225: falha de alta gravidade em carltongibson django-filter

Denial of Service vulnerability in django-filter

Publicada em · Atualizada em

Aviso por e-mail quando ela entrar no KEV, ganhar PoC pública ou subir de nota.

21Vexday Risk Score

Sem sinal de exploração. Nenhum artefato público de exploração conhecido até agora.

ssvc Trackcvss 7.5epss 1.8%
Em resumo

O django-filter tinha uma vulnerabilidade onde números em formato exponencial com expoentes muito grandes (como 1e999999) causavam travamento ou queda do servidor ao processar a entrada. Isso foi corrigido na versão 2.4.0 adicionando validação de limites.

Detalhe técnico

Instâncias de NumberFilter geradas automaticamente no django-filter < 2.4.0 não validavam notação exponencial antes da conversão para inteiro, permitindo ataques de negação de serviço via expoentes extremamente grandes (ex: 1e50+) que consumiam CPU excessiva durante o parse. A correção introduz MaxValueValidator com limite padrão de 1e50 e método get_max_validator() para customização.

Resumo gerado e traduzido por IA a partir da descrição oficial.
django-filter is a generic system for filtering Django QuerySets based on user selections. In django-filter before version 2.4.0, automatically generated `NumberFilter` instances, whose value was later converted to an integer, were subject to potential DoS from maliciously input using exponential format with sufficiently large exponents. Version 2.4.0+ applies a `MaxValueValidator` with a a default `limit_value` of 1e50 to the form field used by `NumberFilter` instances. In addition, `NumberFilter` implements the new `get_max_validator()` which should return a configured validator instance to customise the limit, or else `None` to disable the additional validation. Users may manually apply an equivalent validator if they are not able to upgrade.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H