Vulnerability identifier: #VU24846
Vulnerability risk: Medium
CVSSv4.0: 2.9 [CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/U:Green]
CVE-ID:
CWE-ID:
CWE-89
Exploitation vector: Network
Exploit availability: Yes
Vulnerable software:
Django
Web applications /
CMS
Vendor: Django Software Foundation
Description
The vulnerability allows a remote attacker to execute arbitrary SQL queries in database.
The vulnerability exists due to insufficient sanitization of user-supplied data 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 in Django 1.11 before 1.11.28, 2.2 before 2.2.10, and 3.0 before 3.0.3. A remote attacker can send a specially crafted request to the affected application and execute arbitrary SQL commands within the application database.
Successful exploitation of this vulnerability may allow a remote attacker to read, delete, modify data in database and gain complete control over the affected application.
Mitigation
Install update from vendor's website.
Vulnerable software versions
Django: 1.11 - 1.11.27, 2.1.11 - 2.2.9, 3.0 - 3.0.2
External links
https://docs.djangoproject.com/en/3.0/releases/security/
https://groups.google.com/forum/#!topic/django-announce/X45S86X5bZI
https://www.djangoproject.com/weblog/2020/feb/03/security-releases/
https://www.openwall.com/lists/oss-security/2020/02/03/1
Can this vulnerability be exploited remotely?
Yes. This vulnerability can be exploited by a remote non-authenticated attacker via the Internet.
Is there known malware, which exploits this vulnerability?
No. We are not aware of malware exploiting this vulnerability. However, proof of concept for this vulnerability is available.