← voltar
CVE-2020-15225

Denial of Service vulnerability in django-filter

CVSS 7.5 HIGHEPSS 1.8%CWE-681
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

Quer saber se a sua infraestrutura está exposta a isto?

Falar com a TrueHacking →