What’s Vulnerable › Vulnerabilities
CVE-2020-7471
- Severity: critical (CVSS 9.8 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 65.6% probability of exploitation in the next 30 days
- Public exploit or detection template: none known
- Published: 2020-02-03 · updated 2026-06-17
- Weakness: CWE-89
Description
Django 1.11 before 1.11.28, 2.2 before 2.2.10, and 3.0 before 3.0.3 allows SQL Injection if untrusted data is used as a StringAgg delimiter (e.g., in Django applications that offer downloads of data as a series of rows with a user-specified column delimiter). By passing a suitably crafted delimiter to a contrib.postgres.aggregates.StringAgg instance, it was possible to break escaping and inject malicious SQL.
Affected products
- Django: from 1.11 before 1.11.28; from 2.2 before 2.2.10; from 3.0 before 3.0.3 — fixed in 1.11.28, 2.2.10, 3.0.3
How to fix
Upgrade to a fixed version: Django 1.11.28, 2.2.10, 3.0.3. Check the vendor advisory for mitigations.
References
- http://www.openwall.com/lists/oss-security/2020/02/03/1
- https://docs.djangoproject.com/en/3.0/releases/security/
- https://github.com/django/django/commit/eb31d845323618d688ad429479c6dda973056136
- https://groups.google.com/forum/#%21topic/django-announce/X45S86X5bZI
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/4A2AP4T7RKPBCLTI2NNQG3T6MINDUUMZ/
- https://seclists.org/bugtraq/2020/Feb/30
- https://security.gentoo.org/glsa/202004-17
- https://security.netapp.com/advisory/ntap-20200221-0006/
- https://usn.ubuntu.com/4264-1/
- https://www.debian.org/security/2020/dsa-4629
- https://www.djangoproject.com/weblog/2020/feb/03/security-releases/
- https://www.openwall.com/lists/oss-security/2020/02/03/1
Get alerted when CVE-2020-7471 or the next vulnerability affects your stack