{"id":"CVE-2020-15225","aliases":["GHSA-x7gm-rfgv-w973","PYSEC-2021-64"],"title":"Potential DoS with NumberFilter conversion to integer values.","summary":"Potential DoS with NumberFilter conversion to integer values.","severity":"high","cvss":7.5,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","vendor":"django-filter","product":"django-filter","ecosystem":"pip","affected":["django-filter < 2.4.0"],"patched":["django-filter 2.4.0"],"published":"2020-09-28","updated":"2026-07-08","source":"OSV","sourceUrl":"https://osv.dev/vulnerability/GHSA-x7gm-rfgv-w973","references":[{"url":"https://github.com/carltongibson/django-filter/security/advisories/GHSA-x7gm-rfgv-w973"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-15225"},{"url":"https://github.com/carltongibson/django-filter/commit/340cf7a23a2b3dcd7183f6a0d6c383e85b130d2b"},{"url":"https://github.com/carltongibson/django-filter"},{"url":"https://github.com/carltongibson/django-filter/releases/tag/2.4.0"},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/django-filter/PYSEC-2021-64.yaml"},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/DPHENTRHRAYFXYPPBT7JRHZRWILRY44S"},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/FAT2ZAEF6DM3VFSOHKB7X3ASSHGQHJAK"},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/SVJ7AYU6FUSU3F653YCGW5LFD3IULRSX"},{"url":"https://pypi.org/project/django-filter"},{"url":"https://security.netapp.com/advisory/ntap-20210604-0010"}],"tags":["osv","pip"],"epss":0.01797,"epssPercentile":0.7715,"ingestedAt":"2026-07-08T18:25:54.137Z","slug":"CVE-2020-15225","body":"## Overview\n\n### Impact\n\nAutomatically 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. \n\n### Patches\n\nVersion 2.4.0+ applies a `MaxValueValidator` with a a default `limit_value` of 1e50 to the form field used by `NumberFilter` instances. \n\nIn 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. \n\n### Workarounds\n\nUsers may manually apply an equivalent validator if they are not able to upgrade.  \n\n### For more information\nIf you have any questions or comments about this advisory:\n* Open an issue in [the django-filter repo](https://github.com/carltongibson/django-filter)\n\nThanks to Marcin Waraksa for the report. \n\n\n## Affected packages\n\n- `django-filter < 2.4.0`\n\n## Remediation\n\nUpgrade to a patched release:\n\n- `django-filter 2.4.0`","depth":"twilight","depthScore":42,"depthScoreParts":{"impact":41.3,"likelihood":0.4,"exploitation":0,"ransomware":0},"changes":[]}