CVE-2020-7471 in the critical feed json
SQL injection in Django
published 6y ago modified 2mo ago also BIT-django-2020-7471 , EUVD-2020-0071 , GHSA-hmr4-m2h5-33qx , PYSEC-2020-35
- cvss
- 9.8
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 65.6%
- EPSS 65.6% chance of exploitation in 30 days, percentile 99.2%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
- pypi django 1.11.28, 2.2.10, 3.0.3
- bitnami django 1.11.28, 2.2.10, 3.0.3
- djangoproject django 1.11.28, 2.2.10, 3.0.3
- python-django Debian 14, Debian 13, Debian 12 2:2.2.10-1
debian advisories DEBIAN-CVE-2020-7471
- python-django Ubuntu 18.04 LTS 1:1.11.11-1ubuntu1.7
ubuntu advisories UBUNTU-CVE-2020-7471
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- storm OpenStack Cloud Crowbar 8, OpenStack Cloud 8, HPE Helion OpenStack 8 1.2.3-3.6.1
- ansible OpenStack Cloud Crowbar 8, OpenStack Cloud 8, HPE Helion OpenStack 8 2.9.14-3.15.1
- grafana OpenStack Cloud Crowbar 8, OpenStack Cloud 8, HPE Helion OpenStack 8 6.7.4-4.12.1
- ardana-mq OpenStack Cloud 8, HPE Helion OpenStack 8 8.0+git.1593618123.678c32b-3.26.1
- ardana-nova OpenStack Cloud 8, HPE Helion OpenStack 8 8.0+git.1601298847.dd01585-3.42.1
- crowbar-core OpenStack Cloud Crowbar 8 5.0+git.1600432272.b3ad722f0-3.44.1
- python-kombu OpenStack Cloud Crowbar 8, OpenStack Cloud 8, HPE Helion OpenStack 8 4.1.0-3.7.1
- ardana-cinder OpenStack Cloud 8, HPE Helion OpenStack 8 8.0+git.1596129856.263f430-3.43.1
suse advisories SUSE-SU-2020:3309-1SUSE-RU-2020:2161-1
- python-Django5 openSUSE Tumbleweed 5.2.16-1.1
- python-Django openSUSE Tumbleweed 5.2.16-1.1
- python-Django4 openSUSE Tumbleweed 4.2.30-4.1
- python-Django6 openSUSE Tumbleweed 6.0-1.1
- python-Django4 openSUSE Tumbleweed 4.2.14-1.1
- python-Django openSUSE Tumbleweed 3.2.7-2.3
- python-Django openSUSE Tumbleweed 4.2.11-2.1
opensuse advisories openSUSE-SU-2026:11270-1openSUSE-SU-2026:11248-1openSUSE-SU-2026:11235-1openSUSE-SU-2026:10005-1openSUSE-SU-2024:14208-1openSUSE-SU-2024:11205-1
- py-django Alpine 3.10, Alpine 3.9, Alpine 3.8 1.11.28-r0
- py3-django Alpine 3.24, Alpine 3.23, Alpine 3.22 +11 more 1.11.28-r0
alpine advisories ALPINE-CVE-2020-7471
Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- python-django Arch Linux 3.0.3-1
arch linux advisories AVG-1091
Is CVE-2020-7471 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerVendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2020-7471 updated cvss 9.8
django: potential SQL injection via StringAgg(delimiter)
-
Red Hat Ceph Storage 2 python-django, python-django-bash-completion Red Hat OpenStack Platform 10 (Newton) python-django, python-django-bash-completionaffected: no fix planned “Out of support scope”
-
Red Hat OpenStack Platform 13 (Queens) python-django, python2-django, python-django-bash-completion Red Hat OpenStack Platform 15 (Stein) python-django, python3-django, python-django-bash-completion Red Hat OpenStack Platform 16 (Train) python-django, python3-django, python-django-bash-completion Red Hat Satellite 6 python-django, python2-django, python-django-bash-completion Red Hat Storage 3 python-django, python2-django, python-django-bash-completionaffected: no fix available “Fix deferred”
-
Red Hat Update Infrastructure 3 for Cloud Providers python-djangoaffected: no fix planned “Will not fix”
-
Red Hat Ceph Storage 3 python-django, python-django-bash-completion Red Hat Certification for Red Hat Enterprise Linux 7 python-djangonot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
Exploit prediction
65.58% chance of exploitation in the next 30 days, higher than 99.2% of all scored CVEs (FIRST EPSS, 2026-11-09).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| GitHub | 3.1 | 9.8 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| NVD | 3.1 | 9.8 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| NVD | 2.0 | 7.5 | AV:N/AC:L/Au:N/C:P/I:P/A:P |
| OSV | 3.1 | 9.8 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | django | <1.11.28 >=2.0, <2.2.10 >=3.0, <3.0.3 >=1.11, <1.11.28 >=2.2, <2.2.10 |
1.11.28 2.2.10 3.0.3 |
| bitnami | django | >=1.11.0, <1.11.28 >=2.2.0, <2.2.10 >=3.0.0, <3.0.3 |
1.11.28 2.2.10 3.0.3 |
Classification
- Weakness
-
- CWE-89 Improper Neutralization of Special Elements used in an SQL Command
- Technology feeds
References
-
github.com
/django/django/commit/eb31d845323618d688ad429479c6dda973056136
web, patch, third-party-advisory, advisory
-
github.com
/django/django/commit/001b0634cd309e372edb6d7d95d083d02b8e37bd
web
-
github.com
/django/django/commit/505826b469b16ab36693360da9e11fd13213421b
web
-
github.com
/django/django/commit/c67a368c16e4680b324b4f385398d638db4d8147
web
-
usn.ubuntu.com
/4264-1/
vendor-advisory, web
-
debian.org
/security/2020/dsa-4629
vendor-advisory, web, advisory
-
security.gentoo.org
/glsa/202004-17
vendor-advisory, web, advisory
-
lists.fedoraproject.org
/archives/list/package-announce%40lists.fedoraproject.org/message/4A2AP4T7RKPBCLTI2NNQG3T6MINDUUMZ/
vendor-advisory, web
-
docs.djangoproject.com
/en/3.0/releases/security/
vendor-advisory, advisory, web
-
djangoproject.com
/weblog/2020/feb/03/security-releases/
vendor-advisory, advisory, article
-
groups.google.com
/forum/#%21topic/django-announce/X45S86X5bZI
web
-
openwall.com
/lists/oss-security/2020/02/03/1
web, mailing-list, third-party-advisory, advisory
-
openwall.com
/lists/oss-security/2020/02/03/1
mailing-list, web, third-party-advisory, advisory
-
seclists.org
/bugtraq/2020/Feb/30
mailing-list, web
-
security.netapp.com
/advisory/ntap-20200221-0006/
web, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2020-7471
advisory, web
-
djangoproject.com
/weblog/2020/feb/03/security-releases
web
-
usn.ubuntu.com
/4264-1
web
-
security.netapp.com
/advisory/ntap-20200221-0006
web
-
lists.fedoraproject.org
/archives/list/package-announce@lists.fedoraproject.org/message/4A2AP4T7RKPBCLTI2NNQG3T6MINDUUMZ
web
-
groups.google.com
/forum/#!topic/django-announce/X45S86X5bZI
web
-
github.com
/pypa/advisory-database/tree/main/vulns/django/PYSEC-2020-35.yaml
web
-
github.com
/django/django
package
-
github.com
/advisories/GHSA-hmr4-m2h5-33qx
advisory
-
docs.djangoproject.com
/en/3.0/releases/security
web
-
lists.fedoraproject.org
/archives/list/package-announce@lists.fedoraproject.org/message/4A2AP4T7RKPBCLTI2NNQG3T6MINDUUMZ/
web
Sources
- CVE List CVE-2020-7471
- GitHub Advisory GHSA-hmr4-m2h5-33qx
- NVD CVE-2020-7471
- OSV BIT-django-2020-7471
- OSV PYSEC-2020-35
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.