Skip to content

Potential DoS with NumberFilter conversion to integer values.

High severity GitHub Reviewed Published Sep 27, 2020 in carltongibson/django-filter • Updated Jun 16, 2023

Package

pip django-filter (pip)

Affected versions

< 2.4.0

Patched versions

2.4.0

Description

Impact

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.

Patches

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.

Workarounds

Users may manually apply an equivalent validator if they are not able to upgrade.

For more information

If you have any questions or comments about this advisory:

Thanks to Marcin Waraksa for the report.

References

Reviewed Sep 28, 2020
Published to the GitHub Advisory Database Sep 28, 2020
Published by the National Vulnerability Database Apr 29, 2021
Last updated Jun 16, 2023

Severity

High
7.5
/ 10

CVSS base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
None
User interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

Weaknesses

CVE ID

CVE-2020-15225

GHSA ID

GHSA-x7gm-rfgv-w973
Checking history
See something to contribute? Suggest improvements for this vulnerability.