CVE-2020-7471

CRITICAL LAB

Django < 1.11.28 - SQL Injection

Title source: rule

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.

Exploits (8)

nomisec WORKING POC 103 stars
by Saferman · poc
https://github.com/Saferman/CVE-2020-7471
github WRITEUP 3 stars
by HxDDD · poc
https://github.com/HxDDD/CVE-PoC/tree/main/Django/(SQL Injection) CVE-2020-7471.md
nomisec WORKING POC 2 stars
by secoba · poc
https://github.com/secoba/DjVul_StringAgg
nomisec WORKING POC 2 stars
by SNCKER · poc
https://github.com/SNCKER/CVE-2020-7471
nomisec WORKING POC 1 stars
by huzaifakhan771 · poc
https://github.com/huzaifakhan771/CVE-2020-7471-Django
nomisec WORKING POC
by mrlihd · poc
https://github.com/mrlihd/CVE-2020-7471
nomisec STUB
by Tempuss · poc
https://github.com/Tempuss/CTF_CVE-2020-7471
nomisec WORKING POC
by victomteng1997 · poc
https://github.com/victomteng1997/cve-2020-7471-Time_Blind_SQLi-

Scores

CVSS v3 9.8
EPSS 0.0944
EPSS Percentile 92.8%
Attack Vector NETWORK
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Lab Environment

COMMUNITY
Community Lab
docker pull postgres:11-alpine
docker pull nginx:alpine
+5 more repos

Details

CWE
CWE-89
Status published
Products (2)
djangoproject/django 1.11 - 1.11.28
pypi/Django 0 - 1.11.28PyPI
Published Feb 03, 2020
Tracked Since Feb 18, 2026