CVE-2020-7471PYSEC-2020-35BIT-DJANGO-2020-7471GHSA-HMR4-M2H5-33QX
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
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 1.11.28, 2.2.10, 3.0.3
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- 7 proofs of concept on GitHub
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.
Timeline
- CVE published
- Record last updated
- EPSS reached 10%
FIRST estimates at least a 10% chance of exploitation in the next 30 days
Affected versions
- n/a n/a
Version range not reported
- djangoPyPI
From 1.11 · fixed in 1.11.28; From 2.2 · fixed in 2.2.10; From 3.0 · fixed in 3.0.3
- djangoPyPI
fixed in 1.11.28
- djangoPyPI
From 2.0 · fixed in 2.2.10
- djangoPyPI
From 3.0 · fixed in 3.0.3