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 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.
The product constructs all or part of an SQL command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended SQL command when it is sent to a downstream component. Without sufficient removal or quoting of SQL syntax in user-controllable inputs, the generated SQL query can cause those inputs to be interpreted as SQL instead of ordinary user data.
Link | Tags |
---|---|
https://groups.google.com/forum/#%21topic/django-announce/X45S86X5bZI | |
https://docs.djangoproject.com/en/3.0/releases/security/ | vendor advisory |
https://www.openwall.com/lists/oss-security/2020/02/03/1 | third party advisory mailing list |
https://www.djangoproject.com/weblog/2020/feb/03/security-releases/ | vendor advisory |
http://www.openwall.com/lists/oss-security/2020/02/03/1 | third party advisory mailing list |
https://github.com/django/django/commit/eb31d845323618d688ad429479c6dda973056136 | third party advisory patch |
https://usn.ubuntu.com/4264-1/ | vendor advisory |
https://seclists.org/bugtraq/2020/Feb/30 | mailing list |
https://www.debian.org/security/2020/dsa-4629 | vendor advisory |
https://security.netapp.com/advisory/ntap-20200221-0006/ | |
https://security.gentoo.org/glsa/202004-17 | vendor advisory |
https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/4A2AP4T7RKPBCLTI2NNQG3T6MINDUUMZ/ | vendor advisory |