CVE-2019-14234

An issue was discovered in Django 1.11.x before 1.11.23, 2.1.x before 2.1.11, and 2.2.x before 2.2.4

published August 9, 2019

CVSS
—
EPSS
48%
Percentile
98.8
In the wild
Unconfirmed
What it is

⚡ A crafty use of SQL injection is hiding in Django's JSON and HStore fields! 🚨 Think of it like a restaurant menu that not only lets diners order but also sneakily allows them to add their own items, including kitchen secrets. When they write 'OR 1=1', it’s like saying, 'Bring me everything on the menu, plus the chef's special!' An attacker could exploit this vulnerability to return all records from the database by cleverly manipulating key and index names. The consequences could be absolutely devastating, granting unauthorized access to sensitive data stored within your application.

Put simply

Think of it like a restaurant menu that not only lets diners order but also sneakily allows them to add their own items, including kitchen secrets. When they write 'OR 1=1', it’s like saying, 'Bring me everything on the menu, plus the chef's special!' This vulnerability arises from an error in shallow key transformation, allowing SQL injection through crafted dictionary expansions in Django's JSONField and HStoreField, particularly during key lookups in the QuerySet.filter() function.

What to do

An attacker could exploit this vulnerability to return all records from the database by cleverly manipulating key and index names. The consequences could be absolutely devastating, granting unauthorized access to sensitive data stored within your application. To mitigate this issue, upgrade Django to versions 1.11.23, 2.1.11, or 2.2.4 or later. Also, validate and sanitize any input being passed to these fields to ensure they don't contain potentially malicious payloads. You've got this! Fixing this vulnerability is just an upgrade away. 🛡️

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.47694 · 98.8th percentile
Published
2019-08-09T12:16Z
EPSS history
Timeline
  • 09 AUG 12:16Z
    An issue was discovered in Django 1.11.x before 1.11.23, 2.1.x before 2.1.11, and 2.2.x before 2.2.4
    cvelistv5