CVE-2020-7471

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…

published February 3, 2020

Patch now

High probability of exploitation

NVD has not assigned a CVSS score to this record. It sits in the 99.3th percentile for exploit probability.

CVSS
—
EPSS
66%
Percentile
99.3
In the wild
Unconfirmed
What it is

⚠️ A crafty SQL injection lurking in Django could let attackers do some serious mischief with a simple string! 🔥 Think of it like a restaurant where customers can suggest their own ingredient for a dish. If the chef isn’t careful, someone could sneak in something harmful instead of the expected seasoning, ruining the whole meal! With this vulnerability, an attacker can inject malicious SQL commands simply by manipulating the delimiter in a StringAgg instance, potentially compromising your database. This means they could access sensitive data, alter records, or even delete critical information, making it a huge risk for any Django application using untrusted input to generate reports.

Put simply

Think of it like a restaurant where customers can suggest their own ingredient for a dish. If the chef isn’t careful, someone could sneak in something harmful instead of the expected seasoning, ruining the whole meal! This SQL injection vulnerability in Django affects versions before 1.11.28, 2.2 before 2.2.10, and 3.0 before 3.0.3. It arises when untrusted data is used as a delimiter in the StringAgg function, allowing attackers to break escaping and execute arbitrary SQL commands.

What to do

With this vulnerability, an attacker can inject malicious SQL commands simply by manipulating the delimiter in a StringAgg instance, potentially compromising your database. This means they could access sensitive data, alter records, or even delete critical information, making it a huge risk for any Django application using untrusted input to generate reports. Upgrade your Django application to at least version 1.11.28, 2.2.10, or 3.0.3 to patch this vulnerability. Additionally, ensure you validate and sanitize any user input before it gets passed into SQL commands to prevent potential exploits. 🛡️ You've got this! Fixing this vulnerability will help keep your application secure and your data safe. 🚀

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.65575 · 99.3th percentile
Published
2020-02-03T11:59Z
EPSS history
Timeline
  • 03 FEB 11:59Z
    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…
    cvelistv5