CVE-2019-14234: SQL Injection
:lookup:Key and index lookups <jsonfield.key> for :class:~django.contrib.postgres.fields.JSONField and :lookup:key lookups <hstorefield.key> for :class:~django.contrib.postgres.fields.HStoreField were subject to SQL injection, using a suitably crafted dictionary, with dictionary expansion, as the kwargs passed to QuerySet.filter().
Other sources
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. Due to an error in shallow key transformation, key and index lookups for django.contrib.postgres.fields.JSONField, and key lookups for django.contrib.postgres.fields.HStoreField, were subject to SQL injection. This could, for example, be exploited via crafted use of "OR 1=1" in a key or index name to return all records, using a suitably crafted dictionary, with dictionary expansion, as the kwargs passed to the QuerySet.filter() function.
Affected Software
Event History
Parent advisories
This vulnerability appears in the following advisories.
Frequently Asked Questions
What is the vulnerability ID of this issue?
The vulnerability ID of this issue is CVE-2019-14234.
Which versions of Django are affected by this vulnerability?
Django versions 1.11.x before 1.11.23, 2.1.x before 2.1.11, and 2.2.x before 2.2.4 are affected by this vulnerability.
What is the severity rating of CVE-2019-14234?
CVE-2019-14234 has a severity rating of 9.8, which is considered critical.
How can I fix this vulnerability?
To fix this vulnerability, you should upgrade Django to version 1.11.23, 2.1.11, or 2.2.4.
Where can I find more information about CVE-2019-14234?
You can find more information about CVE-2019-14234 in the following references: [Reference 1](https://bugzilla.redhat.com/show_bug.cgi/show_bug.cgi?id=1735776), [Reference 2](https://bugzilla.redhat.com/show_bug.cgi/show_bug.cgi?id=1735779), [Reference 3](https://bugzilla.redhat.com/show_bug.cgi/show_bug.cgi?id=1735780).