CVE-2020-7471

NameCVE-2020-7471
DescriptionDjango 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.
SourceCVE (at NVD; CERT, LWN, oss-sec, fulldisc, Red Hat, Ubuntu, Gentoo, SUSE bugzilla/CVE, GitHub advisories/code/issues, web search, more)
ReferencesDSA-4629-1
Debian Bugs950581

Vulnerable and fixed packages

The table below lists information on source packages.

Source PackageReleaseVersionStatus
python-django (PTS)jessie, jessie (lts)1.7.11-1+deb8u17fixed
stretch (security)1:1.10.7-2+deb9u17fixed
stretch (lts), stretch1:1.10.7-2+deb9u23fixed
buster, buster (lts)1:1.11.29-1+deb10u12fixed
buster (security)1:1.11.29-1+deb10u11fixed
bullseye (security), bullseye2:2.2.28-1~deb11u2fixed
bookworm (security), bookworm3:3.2.19-1+deb12u1fixed
trixie3:4.2.16-1fixed
sid3:4.2.17-1fixed

The information below is based on the following data on fixed versions.

PackageTypeReleaseFixed VersionUrgencyOriginDebian Bugs
python-djangosourcejessie(not affected)
python-djangosourcestretch1:1.10.7-2+deb9u8DSA-4629-1
python-djangosourcebuster1:1.11.28-1~deb10u1DSA-4629-1
python-djangosource(unstable)2:2.2.10-1950581

Notes

[jessie] - python-django <not-affected> (Vulnerable code introduced in Django ~1.9)
https://www.djangoproject.com/weblog/2020/feb/03/security-releases/
https://github.com/django/django/commit/eb31d845323618d688ad429479c6dda973056136 (master)
https://github.com/django/django/commit/505826b469b16ab36693360da9e11fd13213421b (3.0.3)
https://github.com/django/django/commit/c67a368c16e4680b324b4f385398d638db4d8147 (2.2.10)
https://github.com/django/django/commit/001b0634cd309e372edb6d7d95d083d02b8e37bd (1.11.28)

Search for package or bug name: Reporting problems