← volver
CVE-2020-15225highCWE-681

Denial of Service vulnerability in django-filter

21Vexday Risk Score

Sin señal de explotación. Ningún artefacto público de explotación conocido hasta ahora.

ssvc Trackcvss 7.5epss 1.8%
probabilidad de explotación
1.8%top 23% de las CVE
explotación observada
noninguna fuente lo reporta
En resumen

django-filter era vulnerable a ataques de denegación de servicio cuando se enviaban números en formato exponencial con exponentes muy grandes (como 1e999999), causando que el servidor se congelara o colapsara. Esto fue corregido en la versión 2.4.0 añadiendo validación de límites.

Detalle técnico

Las instancias generadas automáticamente de NumberFilter en django-filter < 2.4.0 no validaban la notación exponencial antes de la conversión a entero, permitiendo ataques DoS mediante exponentes extremadamente grandes (ej: 1e50+) que consumían CPU excesiva durante el análisis. La corrección introduce MaxValueValidator con límite predeterminado de 1e50 y método get_max_validator() para personalización.

Resumen generado y traducido por IA a partir de la descripción 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