Skip to main content
← All vulnerabilities
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
published
Not listed in CISA KEV
Fix
Fixed in 1.11.28, 2.2.10, 3.0.3
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

  1. CVE published
  2. Record last updated
  3. 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

References 19

groups.google.com

docs.djangoproject.com

openwall.com

djangoproject.com

GitHub · django/django

usn.ubuntu.com

seclists.org

debian.org

security.netapp.com

security.gentoo.org

lists.fedoraproject.org

GitHub · SNCKER/CVE-2020-7471

GitHub · Saferman/CVE-2020-7471

GitHub · Tempuss/CTF_CVE-2020-7471

GitHub · huzaifakhan771/CVE-2020-7471-Django

GitHub · mrlihd/CVE-2020-7471

GitHub · secoba/DjVul_StringAgg

GitHub · victomteng1997/cve-2020-7471-Time_Blind_SQLi-