A SQL injection issue was discovered in QuerySet.explain() in Django 2.2 before 2.2.28, 3.2 before 3.2.13, and 4.0 before 4.0.4. This occurs by passing a crafted dictionary (with dictionary expansion) as the **options argument, and placing the injection payload in an option name.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/28xxx/CVE-2022-28347.json",
"unresolved_ranges": [
{
"extracted_events": [
{
"introduced": "2.2"
},
{
"fixed": "2.2.28"
},
{
"introduced": "3.2"
},
{
"fixed": "3.2.13"
},
{
"introduced": "4.0"
},
{
"fixed": "4.0.4"
}
],
"source": "DESCRIPTION"
}
],
"cna_assigner": "mitre"
}{
"cpe": "cpe:2.3:a:djangoproject:django:*:*:*:*:*:*:*:*",
"extracted_events": [
{
"introduced": "2.2"
},
{
"fixed": "2.2.28"
},
{
"introduced": "3.2"
},
{
"fixed": "3.2.13"
},
{
"introduced": "4.0"
},
{
"fixed": "4.0.4"
}
],
"source": "CPE_FIELD"
}