{"api_version":"1","generated_at":"2026-04-23T00:39:52+00:00","cve":"CVE-2020-7471","urls":{"html":"https://cve.report/CVE-2020-7471","api":"https://cve.report/api/cve/CVE-2020-7471.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2020-7471","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2020-7471"},"summary":{"title":"CVE-2020-7471","description":"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.","state":"PUBLIC","assigner":"cve@mitre.org","published_at":"2020-02-03 12:15:00","updated_at":"2023-11-07 03:26:00"},"problem_types":["CWE-89"],"metrics":[],"references":[{"url":"http://www.openwall.com/lists/oss-security/2020/02/03/1","name":"[oss-security] 20200203 Django 3.0.3, 2.2.10 and 1.11.28: CVE-2020-7471: Potential SQL injection via ``StringAgg(delimiter)``","refsource":"MLIST","tags":["Mailing List","Third Party Advisory"],"title":"oss-security - Django 3.0.3, 2.2.10 and 1.11.28: CVE-2020-7471: Potential SQL\n injection via ``StringAgg(delimiter)``","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/4A2AP4T7RKPBCLTI2NNQG3T6MINDUUMZ/","name":"FEDORA-2020-c2639662af","refsource":"FEDORA","tags":[],"title":"[SECURITY] Fedora 32 Update: python-django-3.0.7-1.fc32 - package-announce - Fedora Mailing-Lists","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/4A2AP4T7RKPBCLTI2NNQG3T6MINDUUMZ/","name":"FEDORA-2020-c2639662af","refsource":"","tags":[],"title":"[SECURITY] Fedora 32 Update: python-django-3.0.7-1.fc32 - package-announce - Fedora Mailing-Lists","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://usn.ubuntu.com/4264-1/","name":"USN-4264-1","refsource":"UBUNTU","tags":[],"title":"USN-4264-1: Django vulnerability | Ubuntu security notices | Ubuntu","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://groups.google.com/forum/#%21topic/django-announce/X45S86X5bZI","name":"https://groups.google.com/forum/#%21topic/django-announce/X45S86X5bZI","refsource":"","tags":[],"title":"Google Groups","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://www.djangoproject.com/weblog/2020/feb/03/security-releases/","name":"https://www.djangoproject.com/weblog/2020/feb/03/security-releases/","refsource":"CONFIRM","tags":["Vendor Advisory"],"title":"Django security releases issued: 3.0.3, 2.2.10, and 1.11.28 | Weblog | Django","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://github.com/django/django/commit/eb31d845323618d688ad429479c6dda973056136","name":"https://github.com/django/django/commit/eb31d845323618d688ad429479c6dda973056136","refsource":"CONFIRM","tags":["Patch","Third Party Advisory"],"title":"Fixed CVE-2020-7471 -- Properly escaped StringAgg(delimiter) parameter. · django/django@eb31d84 · GitHub","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://security.gentoo.org/glsa/202004-17","name":"GLSA-202004-17","refsource":"GENTOO","tags":[],"title":"Django: Multiple vulnerabilities (GLSA 202004-17) — Gentoo security","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://security.netapp.com/advisory/ntap-20200221-0006/","name":"https://security.netapp.com/advisory/ntap-20200221-0006/","refsource":"CONFIRM","tags":[],"title":"CVE-2020-7471 Django Vulnerability in NetApp Products | NetApp Product Security","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://docs.djangoproject.com/en/3.0/releases/security/","name":"https://docs.djangoproject.com/en/3.0/releases/security/","refsource":"CONFIRM","tags":["Vendor Advisory"],"title":"Archive of security issues | Django documentation | Django","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://seclists.org/bugtraq/2020/Feb/30","name":"20200219 [SECURITY] [DSA 4629-1] python-django security update","refsource":"BUGTRAQ","tags":[],"title":"Bugtraq: [SECURITY] [DSA 4629-1] python-django security update","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://groups.google.com/forum/#!topic/django-announce/X45S86X5bZI","name":"https://groups.google.com/forum/#!topic/django-announce/X45S86X5bZI","refsource":"CONFIRM","tags":["Mailing List","Third Party Advisory"],"title":"Google Groups","mime":"text/html","httpstatus":"200","archivestatus":"404"},{"url":"https://www.debian.org/security/2020/dsa-4629","name":"DSA-4629","refsource":"DEBIAN","tags":[],"title":"Debian -- Security Information -- DSA-4629-1 python-django","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://www.openwall.com/lists/oss-security/2020/02/03/1","name":"https://www.openwall.com/lists/oss-security/2020/02/03/1","refsource":"CONFIRM","tags":["Mailing List","Third Party Advisory"],"title":"oss-security - Django 3.0.3, 2.2.10 and 1.11.28: CVE-2020-7471: Potential SQL\n injection via ``StringAgg(delimiter)``","mime":"text/html","httpstatus":"200","archivestatus":"200"},{"url":"https://www.cve.org/CVERecord?id=CVE-2020-7471","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2020-7471","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[{"cve_year":"2020","cve_id":"7471","vulnerable":"1","versionEndIncluding":"","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"djangoproject","cpe5":"django","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"},{"cve_year":"2020","cve_id":"7471","vulnerable":"1","versionEndIncluding":"1","cpe1":"cpe","cpe2":"2.3","cpe3":"a","cpe4":"djangoproject","cpe5":"django","cpe6":"*","cpe7":"*","cpe8":"*","cpe9":"*","cpe10":"*","cpe11":"*","cpe12":"*","cpe13":"*"}],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[{"cve":"CVE-2020-7471","qid":"296075","title":"Oracle Solaris 11.4 Support Repository Update (SRU) 21.69.0 Missing (CPUAPR2020)"},{"cve":"CVE-2020-7471","qid":"500577","title":"Alpine Linux Security Update for py3-django"},{"cve":"CVE-2020-7471","qid":"505293","title":"Alpine Linux Security Update for py3-django"},{"cve":"CVE-2020-7471","qid":"981594","title":"Python (pip) Security Update for django (GHSA-hmr4-m2h5-33qx)"}]},"source_records":{"cve_program":{"CVE_data_meta":{"ASSIGNER":"cve@mitre.org","ID":"CVE-2020-7471","STATE":"PUBLIC"},"affects":{"vendor":{"vendor_data":[{"product":{"product_data":[{"product_name":"n/a","version":{"version_data":[{"version_value":"n/a"}]}}]},"vendor_name":"n/a"}]}},"data_format":"MITRE","data_type":"CVE","data_version":"4.0","description":{"description_data":[{"lang":"eng","value":"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."}]},"problemtype":{"problemtype_data":[{"description":[{"lang":"eng","value":"n/a"}]}]},"references":{"reference_data":[{"refsource":"CONFIRM","name":"https://groups.google.com/forum/#!topic/django-announce/X45S86X5bZI","url":"https://groups.google.com/forum/#!topic/django-announce/X45S86X5bZI"},{"refsource":"CONFIRM","name":"https://docs.djangoproject.com/en/3.0/releases/security/","url":"https://docs.djangoproject.com/en/3.0/releases/security/"},{"refsource":"CONFIRM","name":"https://www.openwall.com/lists/oss-security/2020/02/03/1","url":"https://www.openwall.com/lists/oss-security/2020/02/03/1"},{"refsource":"CONFIRM","name":"https://www.djangoproject.com/weblog/2020/feb/03/security-releases/","url":"https://www.djangoproject.com/weblog/2020/feb/03/security-releases/"},{"refsource":"MLIST","name":"[oss-security] 20200203 Django 3.0.3, 2.2.10 and 1.11.28: CVE-2020-7471: Potential SQL injection via ``StringAgg(delimiter)``","url":"http://www.openwall.com/lists/oss-security/2020/02/03/1"},{"refsource":"CONFIRM","name":"https://github.com/django/django/commit/eb31d845323618d688ad429479c6dda973056136","url":"https://github.com/django/django/commit/eb31d845323618d688ad429479c6dda973056136"},{"refsource":"UBUNTU","name":"USN-4264-1","url":"https://usn.ubuntu.com/4264-1/"},{"refsource":"BUGTRAQ","name":"20200219 [SECURITY] [DSA 4629-1] python-django security update","url":"https://seclists.org/bugtraq/2020/Feb/30"},{"refsource":"DEBIAN","name":"DSA-4629","url":"https://www.debian.org/security/2020/dsa-4629"},{"refsource":"CONFIRM","name":"https://security.netapp.com/advisory/ntap-20200221-0006/","url":"https://security.netapp.com/advisory/ntap-20200221-0006/"},{"refsource":"GENTOO","name":"GLSA-202004-17","url":"https://security.gentoo.org/glsa/202004-17"},{"refsource":"FEDORA","name":"FEDORA-2020-c2639662af","url":"https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/4A2AP4T7RKPBCLTI2NNQG3T6MINDUUMZ/"}]}},"nvd":{"publishedDate":"2020-02-03 12:15:00","lastModifiedDate":"2023-11-07 03:26:00","problem_types":["CWE-89"],"metrics":{"baseMetricV3":{"cvssV3":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH","baseScore":9.8,"baseSeverity":"CRITICAL"},"exploitabilityScore":3.9,"impactScore":5.9},"baseMetricV2":{"cvssV2":{"version":"2.0","vectorString":"AV:N/AC:L/Au:N/C:P/I:P/A:P","accessVector":"NETWORK","accessComplexity":"LOW","authentication":"NONE","confidentialityImpact":"PARTIAL","integrityImpact":"PARTIAL","availabilityImpact":"PARTIAL","baseScore":7.5},"severity":"HIGH","exploitabilityScore":10,"impactScore":6.4,"acInsufInfo":false,"obtainAllPrivilege":false,"obtainUserPrivilege":false,"obtainOtherPrivilege":false,"userInteractionRequired":false}},"configurations":{"CVE_data_version":"4.0","nodes":[{"operator":"OR","children":[],"cpe_match":[{"vulnerable":true,"cpe23Uri":"cpe:2.3:a:djangoproject:django:*:*:*:*:*:*:*:*","versionStartIncluding":"3.0","versionEndExcluding":"3.0.3","cpe_name":[]},{"vulnerable":true,"cpe23Uri":"cpe:2.3:a:djangoproject:django:*:*:*:*:*:*:*:*","versionStartIncluding":"2.2","versionEndExcluding":"2.2.10","cpe_name":[]},{"vulnerable":true,"cpe23Uri":"cpe:2.3:a:djangoproject:django:*:*:*:*:*:*:*:*","versionStartIncluding":"1.11","versionEndExcluding":"1.11.28","cpe_name":[]}]}]}},"legacy_mitre":{"record":{"CveYear":"2020","CveId":"7471","Ordinal":"167750","Title":"CVE-2020-7471","CVE":"CVE-2020-7471","Year":"2020"},"notes":[{"CveYear":"2020","CveId":"7471","Ordinal":"1","NoteData":"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.","Type":"Description","Title":null},{"CveYear":"2020","CveId":"7471","Ordinal":"2","NoteData":"2020-02-03","Type":"Other","Title":"Published"},{"CveYear":"2020","CveId":"7471","Ordinal":"3","NoteData":"2020-06-18","Type":"Other","Title":"Modified"}]}}}