Version 5.0.4

Django

The Web framework for perfectionists with deadlines.

Install Instructions

pip install Django
Current Version Release Date November 05, 2024
Language Python
Package URL (purl) pkg:pip/django@5.0.4

Find Django vulnerabilities in your supply chain.

Scan for Free

Django Vulnerabilities

Sort by
icon CVE (Latest)
  • icon CVE (Latest)
  • icon CVE (Oldest)
  • icon CVSS Score (Highest)
  • icon CVSS Score (Lowest)
CVE question mark icon CVSS Score question mark icon CWE(s) question mark icon EPSS Score question mark icon EPSS % question mark icon Impacted Versions
CVE-2010-3082 Medium 4.3 CWE-79 0.00259 0.66239
  • 1.2–1.2.1
CVE-2010-4534 Medium 4 CWE-264 0.0031 0.70592
  • 1.2–1.2.3
CVE-2010-4535 Medium 5 CWE-20 0.13151 0.95696
  • 1.2–1.2.3
CVE-2011-0696 Medium 6.8 CWE-352 0.00381 0.73552
  • 1.1.3–1.2.4
CVE-2011-0697 Medium 4.3 CWE-79 0.00329 0.71546
  • 1.1.3–1.2.4
CVE-2011-0698 High 7.5 CWE-22 0.01705 0.88173
  • 1.1.3–1.2.4
CVE-2011-4136 Medium 5.8 CWE-20 0.01853 0.88733
  • 1.1.3–1.3
CVE-2011-4137 Medium 5 CWE-399 0.03761 0.92081
  • 1.1.3–1.3
CVE-2011-4138 Medium 5 CWE-20 0.00741 0.81327
  • 1.1.3–1.3
CVE-2011-4139 Medium 5 CWE-20 0.00968 0.83812
  • 1.1.3–1.3
CVE-2012-3442 Medium 4.3 CWE-79 0.00357 0.72661
  • 1.1.3–1.4
CVE-2011-4140 Medium 6.8 CWE-352 0.00373 0.7327
  • 1.1.3–1.3
CVE-2012-3443 Medium 5 CWE-20 0.02084 0.89433
  • 1.1.3–1.4
CVE-2012-3444 Medium 5 CWE-119 0.02005 0.89253
  • 1.1.3–1.4
CVE-2014-0472 Medium 5.1 CWE-94 0.01571 0.8767
  • 1.1.3–1.7
CVE-2014-0473 Medium 5 CWE-264 0.00515 0.77221
  • 1.1.3–1.7
CVE-2014-0474 High 10 CWE-399 0.01655 0.88003
  • 1.1.3–1.7
CVE-2014-0480 Medium 5.8 CWE-20 0.00455 0.75789
  • 1.1.3–1.6.5
CVE-2014-0481 Medium 4.3 CWE-399 0.02343 0.90074
  • 1.1.3–1.6.5
CVE-2014-0483 Low 3.5 CWE-264 0.00224 0.61182
  • 1.1.3–1.6.5
CVE-2015-0219 Medium 5 CWE-17 0.00818 0.82343
  • 1.1.3–1.7.2
CVE-2015-0220 Medium 4.3 CWE-79 0.00724 0.81099
  • 1.1.3–1.7.2
CVE-2015-0221 Medium 5 CWE-399 0.10068 0.95102
  • 1.1.3–1.7.2
CVE-2015-0222 Medium 5 CWE-17 0.02765 0.90872
  • 1.1.3–1.7.2
CVE-2015-2241 Medium 4.3 CWE-79 0.00247 0.65255
  • 1.1.3–1.8b1
CVE-2015-2316 Medium 5 CWE-399 0.00963 0.83766
  • 1.1.3–1.8b2
CVE-2015-2317 Medium 4.3 CWE-79 0.00317 0.70981
  • 1.1.3–1.8b2
CVE-2015-5143 High 7.8 CWE-399 0.13527 0.9575
  • 1.1.3–1.8.2
CVE-2015-5144 Medium 4.3 CWE-113, CWE-20 0.00613 0.79175
  • 1.1.3–1.8c1
CVE-2015-5964 Medium 5 CWE-399 0.01638 0.87946
  • 1.1.3–1.8.3
CVE-2015-5963 Medium 5 CWE-399 0.02355 0.90105
  • 1.1.3–1.8.3
CVE-2015-8213 Medium 5 CWE-200 0.00727 0.8113
  • 1.1.3–1.9b1
CVE-2016-2512 High 7.4 CWE-79 0.0032 0.7113
  • 1.1.3–1.9b1
CVE-2016-2513 Low 3.1 CWE-200 0.00723 0.81091
  • 1.1.3–1.8c1
CVE-2016-6186 Medium 6.1 CWE-79 0.0037 0.73184
  • 1.1.3–1.8c1
CVE-2016-7401 High 7.5 CWE-254 0.00767 0.81715
  • 1.1.3–1.8c1
CVE-2016-9014 High 8.1 CWE-350, CWE-264 0.01656 0.88005
  • 1.1.3–1.9b1
CVE-2019-19844 High 9.8 CWE-640 0.2252 0.96638
  • 3.0
  • 2.0–2.2b1
  • 1.1.3–1.9b1
CVE-2019-3498 Medium 6.5 CWE-20, CWE-74 0.01003 0.84114
  • 2.0–2.1b1
  • 1.1.3–1.9b1
CVE-2019-6975 High 7.5 CWE-770 0.01273 0.86125
  • 2.0–2.1.5
  • 1.1.3–1.9b1
CVE-2020-7471 High 9.8 CWE-89 0.01036 0.84389
  • 3.0–3.0.2
  • 2.0–2.2b1
  • 1.1.3–1.9b1
CVE-2021-32052 Medium 6.1 CWE-79 0.00167 0.54213
  • 3.0–3.1b1
  • 2.0–2.2b1
  • 1.1.3–1.9b1
CVE-2021-33203 Medium 4.9 CWE-22 0.00106 0.44325
  • 3.0–3.1b1
  • 2.0–2.2b1
  • 1.1.3–1.9b1
CVE-2022-36359 High 8.8 CWE-494 0.00423 0.74813
  • 4.0–4.1rc1
  • 3.0–3.2b1
  • 2.0–2.2b1
  • 1.1.3–1.9b1
CVE-2024-24680 High 7.5 CWE-400 0.00081 0.3578
  • 5.0–5.0.1
  • 4.2–4.2.9
  • 3.0–3.2b1
  • 2.0–2.2b1
  • 1.1.3–1.9b1
CVE-2024-45231 Medium 5.3 CWE-203 0.00052 0.21691
  • 5.0–5.0.4
  • 4.0–4.2b1
  • 3.0–3.2b1
  • 2.0–2.2b1
  • 1.1.3–1.9b1
CVE-2013-0305 Medium 4 CWE-200 0.00132 0.49431
  • 1.3–1.4.3
CVE-2012-4520 Medium 6.4 CWE-20 0.0067 0.80245
  • 1.3–1.4.1
CVE-2013-0306 Medium 5 CWE-189 0.00913 0.8332
  • 1.3–1.4.3
CVE-2013-1664 Medium 5 CWE-119 0.08963 0.94799
  • 1.3–1.4.3
CVE-2013-1665 Medium 5 CWE-200 0.00288 0.69461
  • 1.3–1.4.3
CVE-2013-1443 Medium 5 CWE-287 0.01282 0.86197
  • 1.4–1.5.3
CVE-2013-4315 Medium 5 CWE-22 0.00539 0.77762
  • 1.4–1.5.2
CVE-2013-6044 Medium 4.3 CWE-79 0.00761 0.81621
  • 1.4–1.5.1
CVE-2014-0482 Medium 6 CWE-287 0.00387 0.73731
  • 1.4–1.6.5
CVE-2014-1418 Medium 6.4 CWE-444 0.00495 0.76743
  • 1.4–1.6.4
CVE-2014-3730 Medium 4.3 CWE-20 0.00451 0.75682
  • 1.4–1.6.4
CVE-2013-4249 Medium 4.3 CWE-79 0.00316 0.70919
  • 1.5–1.5.1
CVE-2015-3982 Medium 5 CWE-384 0.00191 0.57379
  • 1.8–1.8c1
CVE-2015-5145 High 7.8 CWE-399 0.00874 0.82928
  • 1.8–1.8c1
CVE-2016-9013 High 9.8 CWE-259, CWE-798 0.01286 0.86222
  • 1.8–1.9b1
CVE-2017-7233 Medium 6.1 CWE-601 0.00368 0.73101
  • 1.8–1.9b1
CVE-2017-7234 Medium 6.1 CWE-601 0.0016 0.53322
  • 1.8–1.10.6
CVE-2018-7537 Medium 5.3 CWE-400, CWE-185 0.00955 0.83711
  • 2.0–2.0.2
  • 1.8–1.11.10
CVE-2018-7536 Medium 5.3 CWE-400, CWE-185 0.0083 0.82464
  • 2.0–2.0b1
  • 1.8–1.8c1
CVE-2016-2048 Medium 5.5 CWE-284 0.00137 0.50153
  • 1.9–1.9.1
CVE-2017-12794 Medium 6.1 CWE-79 0.00219 0.60432
  • 1.10–1.11b1
CVE-2018-14574 Medium 6.1 CWE-601 0.00443 0.75463
  • 2.0–2.0.7
  • 1.11–1.11.14
CVE-2019-11358 Medium 6.1 CWE-1321 0.02432 0.90295
  • 2.0–2.2b1
CVE-2020-13254 Medium 5.9 CWE-295 0.00401 0.74152
  • 3.0–3.0.6
  • 2.0–2.2b1
CVE-2019-12308 Medium 6.1 CWE-79 0.0104 0.84424
  • 2.1–2.2b1
  • 1.11–1.11b1
CVE-2019-12781 Medium 5.3 CWE-319 0.0098 0.83921
  • 2.1–2.2.2
  • 1.11–1.11.21
CVE-2019-14232 High 7.5 CWE-400 0.04243 0.92498
  • 2.1–2.2b1
  • 1.11–1.11b1
CVE-2019-14233 High 7.5 CWE-400 0.03508 0.91806
  • 2.1–2.2b1
  • 1.11–1.11b1
CVE-2019-14234 High 9.8 CWE-89 0.00766 0.81672
  • 2.1–2.2b1
  • 1.11–1.11b1
CVE-2019-14235 High 7.5 CWE-674 0.03508 0.91806
  • 2.1–2.2b1
  • 1.11–1.11b1
CVE-2020-9402 High 8.8 CWE-89 0.18499 0.96341
  • 3.0–3.0.3
  • 2.2–2.2.10
  • 1.11–1.11.28
CVE-2018-6188 High 7.5 CWE-200 0.002 0.58426
  • 2.0–2.0b1
  • 1.11.8–1.11.9
CVE-2019-19118 Medium 6.5 CWE-276 0.00124 0.47911
  • 2.1–2.2.7
CVE-2020-13596 Medium 6.1 CWE-79 0.01605 0.87826
  • 3.0–3.0b1
  • 2.2–2.2b1
CVE-2020-24583 High 7.5 CWE-276 0.00259 0.66049
  • 3.0–3.1b1
  • 2.2–2.2b1
CVE-2020-24584 High 7.5 CWE-276 0.00225 0.61272
  • 3.0–3.1
  • 2.2–2.2.15
CVE-2021-23336 Medium 5.9 CWE-444 0.00141 0.50753
  • 3.0–3.1.6
  • 2.2–2.2.18
CVE-2021-28658 Medium 5.3 CWE-22 0.00756 0.81534
  • 3.0–3.1b1
  • 2.2–2.2b1
CVE-2021-31542 High 7.5 CWE-434, CWE-22 0.00214 0.59909
  • 3.0–3.1b1
  • 2.2–2.2.20
CVE-2021-3281 Medium 5.3 CWE-22 0.00148 0.51725
  • 3.0–3.1.5
  • 2.2–2.2.17
CVE-2021-33571 High 7.5 CWE-918 0.0019 0.57306
  • 3.0–3.2b1
  • 2.2–2.2b1
CVE-2021-44420 High 7.3 CWE-287 0.00184 0.56455
  • 3.0–3.2b1
  • 2.2–2.2b1
CVE-2021-45115 High 7.5 CWE-400 0.00347 0.72255
  • 4.0–4.0b1
  • 3.2–3.2b1
  • 2.2–2.2b1
CVE-2021-45116 High 7.5 CWE-668, CWE-20 0.00184 0.56531
  • 4.0
  • 3.2–3.2.10
  • 2.2–2.2.25
CVE-2021-45452 Medium 5.3 CWE-22 0.00202 0.58596
  • 4.0
  • 3.2–3.2.10
  • 2.2–2.2.25
CVE-2022-22818 Medium 6.1 CWE-79 0.00564 0.78269
  • 4.0–4.0.1
  • 3.2–3.2.11
  • 2.2–2.2.26
CVE-2022-23833 High 7.5 CWE-835 0.02912 0.91077
  • 4.0–4.0.1
  • 3.2–3.2.11
  • 2.2–2.2.26
CVE-2022-28346 High 9.8 CWE-89 0.00304 0.70236
  • 4.0–4.0.3
  • 3.2–3.2.12
  • 2.2–2.2.27
CVE-2022-28347 High 9.8 CWE-89 0.00468 0.76088
  • 4.0–4.0.3
  • 3.2–3.2.12
  • 2.2–2.2.27
CVE-2018-16984 Medium 4.9 CWE-522 0.00095 0.41121
  • 2.1–2.1.1
CVE-2021-35042 High 9.8 CWE-89 0.00255 0.65815
  • 3.0–3.2b1
CVE-2022-34265 High 9.8 CWE-89 0.16355 0.96125
  • 4.0–4.0b1
  • 3.2–3.2b1
CVE-2022-41323 High 7.5 0.0047 0.7612
  • 4.0–4.1.1
  • 3.2–3.2.15
CVE-2023-23969 High 7.5 CWE-400, CWE-770 0.01424 0.8695
  • 4.0–4.1.5
  • 3.2–3.2.16
CVE-2023-24580 High 7.5 CWE-400 0.00355 0.72595
  • 4.0–4.1b1
  • 3.2–3.2b1
CVE-2023-31047 High 9.8 CWE-20 0.00353 0.72517
  • 4.0–4.2b1
  • 3.2–3.2b1
CVE-2023-41164 High 7.5 CWE-400, CWE-1284 0.00166 0.54164
  • 4.1–4.2.4
  • 3.2–3.2.20
CVE-2023-36053 High 7.5 CWE-1333 0.00209 0.59302
  • 4.0–4.2b1
  • 3.2–3.2b1
CVE-2023-43665 High 7.5 CWE-1333, CWE-1284 0.00214 0.59914
  • 4.1–4.2b1
  • 3.2–3.2b1
CVE-2023-46695 High 7.5 CWE-400, CWE-770 0.0011 0.45192
  • 4.1–4.2b1
  • 3.2–3.2b1
CVE-2024-27351 Medium 5.3 CWE-1333 0.00044 0.11331
  • 5.0–5.0.2
  • 4.2–4.2.10
  • 3.2–3.2.24
CVE-2024-38875 High 7.5 CWE-130 0.00045 0.16759
  • 5.0–5.0.4
  • 4.2–4.2.11
CVE-2024-39329 Medium 5.3 CWE-208 0.00045 0.16759
  • 5.0–5.0.4
  • 4.2–4.2.11
CVE-2024-39330 Medium 4.3 CWE-22 0.00045 0.16759
  • 5.0–5.0.4
  • 4.2–4.2.11
CVE-2024-39614 High 7.5 CWE-130 0.00045 0.16759
  • 5.0–5.0.4
  • 4.2–4.2.11
CVE-2024-41989 High 7.5 0.00053 0.22402
  • 5.0–5.0.4
  • 4.2–4.2.11
CVE-2024-41990 High 7.5 CWE-130 0.00053 0.22402
  • 5.0–5.0.4
  • 4.2–4.2.11
CVE-2024-41991 High 7.5 CWE-130, CWE-1284 0.00053 0.22402
  • 5.0–5.0.4
  • 4.2–4.2.11
CVE-2024-42005 High 7.3 CWE-89 0.00052 0.21691
  • 5.0–5.0.4
  • 4.2–4.2.11
CVE-2024-45230 High 7.5 CWE-120 0.00053 0.22402
  • 5.0–5.0.4
  • 4.2–4.2.11

Django Vulnerability Remediation Guidance

CVE Description Full list of Impacted Versions Fix
CVE-2024-45231 An issue was discovered in Django v5.1.1, v5.0.9, and v4.2.16. The django.contrib.auth.forms.PasswordResetForm class, when used in a view implementing password reset flows, allows remote attackers to enumerate user e-mail addresses by sending password reset requests and observing the outcome (only when e-mail sending is consistently failing). 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2024-45230 An issue was discovered in Django 5.1 before 5.1.1, 5.0 before 5.0.9, and 4.2 before 4.2.16. The urlize() and urlizetrunc() template filters are subject to a potential denial-of-service attack via very large inputs with a specific sequence of characters. 4.2.6, 4.2.7, 4.2.9, 4.2.4, 4.2.8, 4.2, 4.2.3, 4.2.2 (Show all) Patch → NO_SAFE_VERSION
CVE-2024-42005 An issue was discovered in Django 5.0 before 5.0.8 and 4.2 before 4.2.15. QuerySet.values() and values_list() methods on models with a JSONField are subject to SQL injection in column aliases via a crafted JSON object key as a passed *arg. 4.2.6, 4.2.7, 4.2.9, 4.2.4, 4.2.8, 4.2, 4.2.3, 4.2.2 (Show all) Patch → NO_SAFE_VERSION
CVE-2024-41991 An issue was discovered in Django 5.0 before 5.0.8 and 4.2 before 4.2.15. The urlize and urlizetrunc template filters, and the AdminURLFieldWidget widget, are subject to a potential denial-of-service attack via certain inputs with a very large number of Unicode characters. 4.2.6, 4.2.7, 4.2.9, 4.2.4, 4.2.8, 4.2, 4.2.3, 4.2.2 (Show all) Patch → NO_SAFE_VERSION
CVE-2024-41990 An issue was discovered in Django 5.0 before 5.0.8 and 4.2 before 4.2.15. The urlize() and urlizetrunc() template filters are subject to a potential denial-of-service attack via very large inputs with a specific sequence of characters. 4.2.6, 4.2.7, 4.2.9, 4.2.4, 4.2.8, 4.2, 4.2.3, 4.2.2 (Show all) Patch → NO_SAFE_VERSION
CVE-2024-41989 An issue was discovered in Django 5.0 before 5.0.8 and 4.2 before 4.2.15. The floatformat template filter is subject to significant memory consumption when given a string representation of a number in scientific notation with a large exponent. 4.2.6, 4.2.7, 4.2.9, 4.2.4, 4.2.8, 4.2, 4.2.3, 4.2.2 (Show all) Patch → NO_SAFE_VERSION
CVE-2024-39614 An issue was discovered in Django 5.0 before 5.0.7 and 4.2 before 4.2.14. get_supported_language_variant() was subject to a potential denial-of-service attack when used with very long strings containing specific characters. 4.2.6, 4.2.7, 4.2.9, 4.2.4, 4.2.8, 4.2, 4.2.3, 4.2.2 (Show all) Patch → NO_SAFE_VERSION
CVE-2024-39330 An issue was discovered in Django 5.0 before 5.0.7 and 4.2 before 4.2.14. Derived classes of the django.core.files.storage.Storage base class, when they override generate_filename() without replicating the file-path validations from the parent class, potentially allow directory traversal via certain inputs during a save() call. (Built-in Storage sub-classes are unaffected.) 4.2.6, 4.2.7, 4.2.9, 4.2.4, 4.2.8, 4.2, 4.2.3, 4.2.2 (Show all) Patch → NO_SAFE_VERSION
CVE-2024-39329 An issue was discovered in Django 5.0 before 5.0.7 and 4.2 before 4.2.14. The django.contrib.auth.backends.ModelBackend.authenticate() method allows remote attackers to enumerate users via a timing attack involving login requests for users with an unusable password. 4.2.6, 4.2.7, 4.2.9, 4.2.4, 4.2.8, 4.2, 4.2.3, 4.2.2 (Show all) Patch → NO_SAFE_VERSION
CVE-2024-38875 An issue was discovered in Django 4.2 before 4.2.14 and 5.0 before 5.0.7. urlize and urlizetrunc were subject to a potential denial of service attack via certain inputs with a very large number of brackets. 4.2.6, 4.2.7, 4.2.9, 4.2.4, 4.2.8, 4.2, 4.2.3, 4.2.2 (Show all) Patch → NO_SAFE_VERSION
CVE-2024-27351 In Django 3.2 before 3.2.25, 4.2 before 4.2.11, and 5.0 before 5.0.3, the django.utils.text.Truncator.words() method (with html=True) and the truncatewords_html template filter are subject to a potential regular expression denial-of-service attack via a crafted string. NOTE: this issue exists because of an incomplete fix for CVE-2019-14232 and CVE-2023-43665. 3.2, 3.2.7, 3.2.8, 3.2.6, 3.2.10, 3.2.5, 3.2.4, 3.2.3 (Show all) Patch → NO_SAFE_VERSION
CVE-2024-24680 An issue was discovered in Django 3.2 before 3.2.24, 4.2 before 4.2.10, and Django 5.0 before 5.0.2. The intcomma template filter was subject to a potential denial-of-service attack when used with very long strings. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2023-46695 An issue was discovered in Django 3.2 before 3.2.23, 4.1 before 4.1.13, and 4.2 before 4.2.7. The NFKC normalization is slow on Windows. As a consequence, django.contrib.auth.forms.UsernameField is subject to a potential DoS (denial of service) attack via certain inputs with a very large number of Unicode characters. 3.2, 3.2.7, 3.2.8, 3.2.6, 3.2.10, 3.2.5, 3.2.4, 3.2.3 (Show all) Patch → NO_SAFE_VERSION
CVE-2023-43665 In Django 3.2 before 3.2.22, 4.1 before 4.1.12, and 4.2 before 4.2.6, the django.utils.text.Truncator chars() and words() methods (when used with html=True) are subject to a potential DoS (denial of service) attack via certain inputs with very long, potentially malformed HTML text. The chars() and words() methods are used to implement the truncatechars_html and truncatewords_html template filters, which are thus also vulnerable. NOTE: this issue exists because of an incomplete fix for CVE-2019-14232. 3.2, 3.2.7, 3.2.8, 3.2.6, 3.2.10, 3.2.5, 3.2.4, 3.2.3 (Show all) Patch → NO_SAFE_VERSION
CVE-2023-41164 In Django 3.2 before 3.2.21, 4.1 before 4.1.11, and 4.2 before 4.2.5, django.utils.encoding.uri_to_iri() is subject to a potential DoS (denial of service) attack via certain inputs with a very large number of Unicode characters. 3.2, 3.2.7, 3.2.8, 3.2.6, 3.2.10, 3.2.5, 3.2.4, 3.2.3 (Show all) Patch → NO_SAFE_VERSION
CVE-2023-36053 In Django 3.2 before 3.2.20, 4 before 4.1.10, and 4.2 before 4.2.3, EmailValidator and URLValidator are subject to a potential ReDoS (regular expression denial of service) attack via a very large number of domain name labels of emails and URLs. 3.2, 3.2.7, 3.2.8, 4.0, 3.2.6, 3.2.10, 3.2.5, 3.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2023-31047 In Django 3.2 before 3.2.19, 4.x before 4.1.9, and 4.2 before 4.2.1, it was possible to bypass validation when using one form field to upload multiple files. This multiple upload has never been supported by forms.FileField or forms.ImageField (only the last uploaded file was validated). However, Django's "Uploading multiple files" documentation suggested otherwise. 3.2, 3.2.7, 3.2.8, 4.0, 3.2.6, 3.2.10, 3.2.5, 3.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2023-24580 An issue was discovered in the Multipart Request Parser in Django 3.2 before 3.2.18, 4.0 before 4.0.10, and 4.1 before 4.1.7. Passing certain inputs (e.g., an excessive number of parts) to multipart forms could result in too many open files or memory exhaustion, and provided a potential vector for a denial-of-service attack. 3.2, 3.2.7, 3.2.8, 4.0, 3.2.6, 3.2.10, 3.2.5, 3.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2023-23969 In Django 3.2 before 3.2.17, 4.0 before 4.0.9, and 4.1 before 4.1.6, the parsed values of Accept-Language headers are cached in order to avoid repetitive parsing. This leads to a potential denial-of-service vector via excessive memory usage if the raw value of Accept-Language headers is very large. 3.2, 3.2.7, 3.2.8, 4.0, 3.2.6, 3.2.10, 3.2.5, 3.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2022-41323 In Django 3.2 before 3.2.16, 4.0 before 4.0.8, and 4.1 before 4.1.2, internationalized URLs were subject to a potential denial of service attack via the locale parameter, which is treated as a regular expression. 3.2, 3.2.7, 3.2.8, 4.0, 3.2.6, 3.2.10, 3.2.5, 3.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2022-36359 An issue was discovered in the HTTP FileResponse class in Django 3.2 before 3.2.15 and 4.0 before 4.0.7. An application is vulnerable to a reflected file download (RFD) attack that sets the Content-Disposition header of a FileResponse when the filename is derived from user-supplied input. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2022-34265 An issue was discovered in Django 3.2 before 3.2.14 and 4.0 before 4.0.6. The Trunc() and Extract() database functions are subject to SQL injection if untrusted data is used as a kind/lookup_name value. Applications that constrain the lookup name and kind choice to a known safe list are unaffected. 3.2, 3.2.7, 3.2.8, 4.0, 3.2.6, 3.2.10, 3.2.5, 3.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2022-28347 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. 2.2.1, 2.2.2, 2.2, 2.2.3, 2.2.12, 2.2.11, 2.2.9, 2.2.7 (Show all) Patch → NO_SAFE_VERSION
CVE-2022-28346 An issue was discovered in Django 2.2 before 2.2.28, 3.2 before 3.2.13, and 4.0 before 4.0.4. QuerySet.annotate(), aggregate(), and extra() methods are subject to SQL injection in column aliases via a crafted dictionary (with dictionary expansion) as the passed **kwargs. 2.2.1, 2.2.2, 2.2, 2.2.3, 2.2.12, 2.2.11, 2.2.9, 2.2.7 (Show all) Patch → NO_SAFE_VERSION
CVE-2022-23833 An issue was discovered in MultiPartParser in Django 2.2 before 2.2.27, 3.2 before 3.2.12, and 4.0 before 4.0.2. Passing certain inputs to multipart forms could result in an infinite loop when parsing files. 2.2.1, 2.2.2, 2.2, 2.2.3, 2.2.12, 2.2.11, 2.2.9, 2.2.7 (Show all) Patch → NO_SAFE_VERSION
CVE-2022-22818 The {% debug %} template tag in Django 2.2 before 2.2.27, 3.2 before 3.2.12, and 4.0 before 4.0.2 does not properly encode the current context. This may lead to XSS. 2.2.1, 2.2.2, 2.2, 2.2.3, 2.2.12, 2.2.11, 2.2.9, 2.2.7 (Show all) Patch → NO_SAFE_VERSION
CVE-2021-45452 Storage.save in Django 2.2 before 2.2.26, 3.2 before 3.2.11, and 4.0 before 4.0.1 allows directory traversal if crafted filenames are directly passed to it. 2.2.1, 2.2.2, 2.2, 2.2.3, 2.2.12, 2.2.11, 2.2.9, 2.2.7 (Show all) Patch → NO_SAFE_VERSION
CVE-2021-45116 An issue was discovered in Django 2.2 before 2.2.26, 3.2 before 3.2.11, and 4.0 before 4.0.1. Due to leveraging the Django Template Language's variable resolution logic, the dictsort template filter was potentially vulnerable to information disclosure, or an unintended method call, if passed a suitably crafted key. 2.2.1, 2.2.2, 2.2, 2.2.3, 2.2.12, 2.2.11, 2.2.9, 2.2.7 (Show all) Patch → NO_SAFE_VERSION
CVE-2021-45115 An issue was discovered in Django 2.2 before 2.2.26, 3.2 before 3.2.11, and 4.0 before 4.0.1. UserAttributeSimilarityValidator incurred significant overhead in evaluating a submitted password that was artificially large in relation to the comparison values. In a situation where access to user registration was unrestricted, this provided a potential vector for a denial-of-service attack. 2.2.1, 2.2.2, 2.2, 2.2rc1, 2.2a1, 2.2b1, 2.2.3, 2.2.12 (Show all) Patch → NO_SAFE_VERSION
CVE-2021-44420 In Django 2.2 before 2.2.25, 3.1 before 3.1.14, and 3.2 before 3.2.10, HTTP requests for URLs with trailing newlines could bypass upstream access control based on URL paths. 2.2.1, 2.2.2, 2.2, 2.2rc1, 2.2a1, 2.2b1, 2.2.3, 3.0.6 (Show all) Patch → NO_SAFE_VERSION
CVE-2021-35042 Django 3.1.x before 3.1.13 and 3.2.x before 3.2.5 allows QuerySet.order_by SQL injection if order_by is untrusted input from a client of a web application. 3.0.6, 3.0.4, 3.0.3, 3.0.5, 3.0.2, 3.0.1, 3.0, 3.1.5 (Show all) Patch → NO_SAFE_VERSION
CVE-2021-33571 In Django 2.2 before 2.2.24, 3.x before 3.1.12, and 3.2 before 3.2.4, URLValidator, validate_ipv4_address, and validate_ipv46_address do not prohibit leading zero characters in octal literals. This may allow a bypass of access control that is based on IP addresses. (validate_ipv4_address and validate_ipv46_address are unaffected with Python 3.9.5+..) . 2.2.1, 2.2.2, 2.2, 2.2rc1, 2.2a1, 2.2b1, 2.2.3, 3.0.6 (Show all) Patch → NO_SAFE_VERSION
CVE-2021-33203 Django before 2.2.24, 3.x before 3.1.12, and 3.2.x before 3.2.4 has a potential directory traversal via django.contrib.admindocs. Staff members could use the TemplateDetailView view to check the existence of arbitrary files. Additionally, if (and only if) the default admindocs templates have been customized by application developers to also show file contents, then not only the existence but also the file contents would have been exposed. In other words, there is directory traversal outside of the template root directories. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2021-3281 In Django 2.2 before 2.2.18, 3.0 before 3.0.12, and 3.1 before 3.1.6, the django.utils.archive.extract method (used by "startapp --template" and "startproject --template") allows directory traversal via an archive with absolute paths or relative paths with dot segments. 2.2.1, 2.2.2, 2.2, 2.2.3, 3.0.6, 3.0.4, 3.0.3, 3.0.5 (Show all) Patch → NO_SAFE_VERSION
CVE-2021-32052 In Django 2.2 before 2.2.22, 3.1 before 3.1.10, and 3.2 before 3.2.2 (with Python 3.9.5+), URLValidator does not prohibit newlines and tabs (unless the URLField form field is used). If an application uses values with newlines in an HTTP response, header injection can occur. Django itself is unaffected because HttpResponse prohibits newlines in HTTP headers. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2021-31542 In Django 2.2 before 2.2.21, 3.1 before 3.1.9, and 3.2 before 3.2.1, MultiPartParser, UploadedFile, and FieldFile allowed directory traversal via uploaded files with suitably crafted file names. 2.2.1, 2.2.2, 2.2, 2.2.3, 3.0.6, 3.0.4, 3.0.3, 3.0.5 (Show all) Patch → NO_SAFE_VERSION
CVE-2021-28658 In Django 2.2 before 2.2.20, 3.0 before 3.0.14, and 3.1 before 3.1.8, MultiPartParser allowed directory traversal via uploaded files with suitably crafted file names. Built-in upload handlers were not affected by this vulnerability. 2.2.1, 2.2.2, 2.2, 2.2rc1, 2.2a1, 2.2b1, 2.2.3, 3.0.6 (Show all) Patch → NO_SAFE_VERSION
CVE-2021-23336 The package python/cpython from 0 and before 3.6.13, from 3.7.0 and before 3.7.10, from 3.8.0 and before 3.8.8, from 3.9.0 and before 3.9.2 are vulnerable to Web Cache Poisoning via urllib.parse.parse_qsl and urllib.parse.parse_qs by using a vector called parameter cloaking. When the attacker can separate query parameters using a semicolon (;), they can cause a difference in the interpretation of the request between the proxy (running with default configuration) and the server. This can result in malicious requests being cached as completely safe ones, as the proxy would usually not see the semicolon as a separator, and therefore would not include it in a cache key of an unkeyed parameter. 2.2.1, 2.2.2, 2.2, 2.2.3, 3.0.6, 3.0.4, 3.0.3, 3.0.5 (Show all) Patch → NO_SAFE_VERSION
CVE-2020-9402 Django 1.11 before 1.11.29, 2.2 before 2.2.11, and 3.0 before 3.0.4 allows 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 was possible to break escaping and inject malicious SQL. 1.11.4, 1.11.14, 1.11.11, 1.11.10, 1.11.9, 1.11.8, 1.11.7, 1.11.2 (Show all) Patch → NO_SAFE_VERSION
CVE-2020-7471 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. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2020-24584 An issue was discovered in Django 2.2 before 2.2.16, 3.0 before 3.0.10, and 3.1 before 3.1.1 (when Python 3.7+ is used). The intermediate-level directories of the filesystem cache had the system's standard umask rather than 0o077. 2.2.1, 2.2.2, 2.2, 2.2.3, 3.0.6, 3.0.4, 3.0.3, 3.0.5 (Show all) Patch → NO_SAFE_VERSION
CVE-2020-24583 An issue was discovered in Django 2.2 before 2.2.16, 3.0 before 3.0.10, and 3.1 before 3.1.1 (when Python 3.7+ is used). FILE_UPLOAD_DIRECTORY_PERMISSIONS mode was not applied to intermediate-level directories created in the process of uploading files. It was also not applied to intermediate-level collected static directories when using the collectstatic management command. 2.2.1, 2.2.2, 2.2, 2.2rc1, 2.2a1, 2.2b1, 2.2.3, 3.0.6 (Show all) Patch → NO_SAFE_VERSION
CVE-2020-13596 An issue was discovered in Django 2.2 before 2.2.13 and 3.0 before 3.0.7. Query parameters generated by the Django admin ForeignKeyRawIdWidget were not properly URL encoded, leading to a possibility of an XSS attack. 2.2.1, 2.2.2, 2.2, 2.2rc1, 2.2a1, 2.2b1, 2.2.3, 3.0.6 (Show all) Patch → NO_SAFE_VERSION
CVE-2020-13254 An issue was discovered in Django 2.2 before 2.2.13 and 3.0 before 3.0.7. In cases where a memcached backend does not perform key validation, passing malformed cache keys could result in a key collision, and potential data leakage. 2.0.5, 2.0.7, 2.0.6, 2.0.3, 2.0.2, 2.0.1, 2.0, 2.0.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2019-6975 Django 1.11.x before 1.11.19, 2.0.x before 2.0.11, and 2.1.x before 2.1.6 allows Uncontrolled Memory Consumption via a malicious attacker-supplied value to the django.utils.numberformat.format() function. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2019-3498 In Django 1.11.x before 1.11.18, 2.0.x before 2.0.10, and 2.1.x before 2.1.5, an Improper Neutralization of Special Elements in Output Used by a Downstream Component issue exists in django.views.defaults.page_not_found(), leading to content spoofing (in a 404 error page) if a user fails to recognize that a crafted URL has malicious content. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2019-19844 Django before 1.11.27, 2.x before 2.2.9, and 3.x before 3.0.1 allows account takeover. A suitably crafted email address (that is equal to an existing user's email address after case transformation of Unicode characters) would allow an attacker to be sent a password reset token for the matched user account. (One mitigation in the new releases is to send password reset tokens only to the registered user email address.) 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2019-19118 Django 2.1 before 2.1.15 and 2.2 before 2.2.8 allows unintended model editing. A Django model admin displaying inline related models, where the user has view-only permissions to a parent model but edit permissions to the inline model, would be presented with an editing UI, allowing POST requests, for updating the inline model. Directly editing the view-only parent model was not possible, but the parent model's save() method was called, triggering potential side effects, and causing pre and post-save signal handlers to be invoked. (To resolve this, the Django admin is adjusted to require edit permissions on the parent model in order for inline models to be editable.) 2.2.1, 2.2.2, 2.2, 2.1.10, 2.1.8, 2.1.7, 2.1.5, 2.1.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2019-14235 An issue was discovered in Django 1.11.x before 1.11.23, 2.1.x before 2.1.11, and 2.2.x before 2.2.4. If passed certain inputs, django.utils.encoding.uri_to_iri could lead to significant memory usage due to a recursion when repercent-encoding invalid UTF-8 octet sequences. 1.11.4, 1.11a1, 1.11b1, 1.11rc1, 1.11.14, 1.11.11, 1.11.10, 1.11.9 (Show all) Patch → NO_SAFE_VERSION
CVE-2019-14234 An issue was discovered in Django 1.11.x before 1.11.23, 2.1.x before 2.1.11, and 2.2.x before 2.2.4. Due to an error in shallow key transformation, key and index lookups for django.contrib.postgres.fields.JSONField, and key lookups for django.contrib.postgres.fields.HStoreField, were subject to SQL injection. This could, for example, be exploited via crafted use of "OR 1=1" in a key or index name to return all records, using a suitably crafted dictionary, with dictionary expansion, as the **kwargs passed to the QuerySet.filter() function. 1.11.4, 1.11a1, 1.11b1, 1.11rc1, 1.11.14, 1.11.11, 1.11.10, 1.11.9 (Show all) Patch → NO_SAFE_VERSION
CVE-2019-14233 An issue was discovered in Django 1.11.x before 1.11.23, 2.1.x before 2.1.11, and 2.2.x before 2.2.4. Due to the behaviour of the underlying HTMLParser, django.utils.html.strip_tags would be extremely slow to evaluate certain inputs containing large sequences of nested incomplete HTML entities. 1.11.4, 1.11a1, 1.11b1, 1.11rc1, 1.11.14, 1.11.11, 1.11.10, 1.11.9 (Show all) Patch → NO_SAFE_VERSION
CVE-2019-14232 An issue was discovered in Django 1.11.x before 1.11.23, 2.1.x before 2.1.11, and 2.2.x before 2.2.4. If django.utils.text.Truncator's chars() and words() methods were passed the html=True argument, they were extremely slow to evaluate certain inputs due to a catastrophic backtracking vulnerability in a regular expression. The chars() and words() methods are used to implement the truncatechars_html and truncatewords_html template filters, which were thus vulnerable. 1.11.4, 1.11a1, 1.11b1, 1.11rc1, 1.11.14, 1.11.11, 1.11.10, 1.11.9 (Show all) Patch → NO_SAFE_VERSION
CVE-2019-12781 An issue was discovered in Django 1.11 before 1.11.22, 2.1 before 2.1.10, and 2.2 before 2.2.3. An HTTP request is not redirected to HTTPS when the SECURE_PROXY_SSL_HEADER and SECURE_SSL_REDIRECT settings are used, and the proxy connects to Django via HTTPS. In other words, django.http.HttpRequest.scheme has incorrect behavior when a client uses HTTP. 1.11.4, 1.11.14, 1.11.11, 1.11.10, 1.11.9, 1.11.8, 1.11.7, 1.11.2 (Show all) Patch → NO_SAFE_VERSION
CVE-2019-12308 An issue was discovered in Django 1.11 before 1.11.21, 2.1 before 2.1.9, and 2.2 before 2.2.2. The clickable Current URL value displayed by the AdminURLFieldWidget displays the provided value without validating it as a safe URL. Thus, an unvalidated value stored in the database, or a value provided as a URL query parameter payload, could result in an clickable JavaScript link. 1.11.4, 1.11a1, 1.11b1, 1.11rc1, 1.11.14, 1.11.11, 1.11.10, 1.11.9 (Show all) Patch → NO_SAFE_VERSION
CVE-2019-11358 jQuery before 3.4.0, as used in Drupal, Backdrop CMS, and other products, mishandles jQuery.extend(true, {}, ...) because of Object.prototype pollution. If an unsanitized source object contained an enumerable __proto__ property, it could extend the native Object.prototype. 2.0.5, 2.0.7, 2.0.6, 2.0.3, 2.0.2, 2.0.1, 2.0, 2.0.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2018-7537 An issue was discovered in Django 2.0 before 2.0.3, 1.11 before 1.11.11, and 1.8 before 1.8.19. If django.utils.text.Truncator's chars() and words() methods were passed the html=True argument, they were extremely slow to evaluate certain inputs due to a catastrophic backtracking vulnerability in a regular expression. The chars() and words() methods are used to implement the truncatechars_html and truncatewords_html template filters, which were thus vulnerable. 1.8.1, 1.8, 1.8.2, 1.8.5, 1.8.18, 1.8.14, 1.8.15, 1.8.12 (Show all) Patch → NO_SAFE_VERSION
CVE-2018-7536 An issue was discovered in Django 2.0 before 2.0.3, 1.11 before 1.11.11, and 1.8 before 1.8.19. The django.utils.html.urlize() function was extremely slow to evaluate certain inputs due to catastrophic backtracking vulnerabilities in two regular expressions (only one regular expression for Django 1.8.x). The urlize() function is used to implement the urlize and urlizetrunc template filters, which were thus vulnerable. 1.8.1, 1.8, 1.8c1, 1.8a1, 1.8b1, 1.8b2, 1.8.2, 1.8.5 (Show all) Patch → NO_SAFE_VERSION
CVE-2018-6188 django.contrib.auth.forms.AuthenticationForm in Django 2.0 before 2.0.2, and 1.11.8 and 1.11.9, allows remote attackers to obtain potentially sensitive information by leveraging data exposure from the confirm_login_allowed() method, as demonstrated by discovering whether a user account is inactive. 2.0.1, 2.0, 1.11.9, 1.11.8, 2.0a1, 2.0b1, 2.0rc1 Patch → NO_SAFE_VERSION
CVE-2018-16984 An issue was discovered in Django 2.1 before 2.1.2, in which unprivileged users can read the password hashes of arbitrary accounts. The read-only password widget used by the Django Admin to display an obfuscated password hash was bypassed if a user has only the "view" permission (new in Django 2.1), resulting in display of the entire password hash to those users. This may result in a vulnerability for sites with legacy user accounts using insecure hashes. 2.1.1, 2.1 Patch → NO_SAFE_VERSION
CVE-2018-14574 django.middleware.common.CommonMiddleware in Django 1.11.x before 1.11.15 and 2.0.x before 2.0.8 has an Open Redirect. 2.0.5, 1.11.4, 2.0.7, 2.0.6, 2.0.3, 2.0.2, 2.0.1, 2.0 (Show all) Patch → NO_SAFE_VERSION
CVE-2017-7234 A maliciously crafted URL to a Django (1.10 before 1.10.7, 1.9 before 1.9.13, and 1.8 before 1.8.18) site using the ``django.views.static.serve()`` view could redirect to any other domain, aka an open redirect vulnerability. 1.8.1, 1.8, 1.8.2, 1.8.5, 1.9.2, 1.9.1, 1.8.14, 1.8.15 (Show all) Patch → NO_SAFE_VERSION
CVE-2017-7233 Django 1.10 before 1.10.7, 1.9 before 1.9.13, and 1.8 before 1.8.18 relies on user input in some cases to redirect the user to an "on success" URL. The security check for these redirects (namely ``django.utils.http.is_safe_url()``) considered some numeric URLs "safe" when they shouldn't be, aka an open redirect vulnerability. Also, if a developer relies on ``is_safe_url()`` to provide safe redirect targets and puts such a URL into a link, they could suffer from an XSS attack. 1.8.1, 1.8, 1.8c1, 1.8a1, 1.8b1, 1.8b2, 1.8.2, 1.8.5 (Show all) Patch → NO_SAFE_VERSION
CVE-2017-12794 In Django 1.10.x before 1.10.8 and 1.11.x before 1.11.5, HTML autoescaping was disabled in a portion of the template for the technical 500 debug page. Given the right circumstances, this allowed a cross-site scripting attack. This vulnerability shouldn't affect most production sites since you shouldn't run with "DEBUG = True" (which makes this page accessible) in your production settings. 1.10.7, 1.11.4, 1.10.2, 1.10.1, 1.10a1, 1.10rc1, 1.10b1, 1.11a1 (Show all) Patch → NO_SAFE_VERSION
CVE-2016-9014 Django before 1.8.x before 1.8.16, 1.9.x before 1.9.11, and 1.10.x before 1.10.3, when settings.DEBUG is True, allow remote attackers to conduct DNS rebinding attacks by leveraging failure to validate the HTTP Host header against settings.ALLOWED_HOSTS. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2016-9013 Django 1.8.x before 1.8.16, 1.9.x before 1.9.11, and 1.10.x before 1.10.3 use a hardcoded password for a temporary database user created when running tests with an Oracle database, which makes it easier for remote attackers to obtain access to the database server by leveraging failure to manually specify a password in the database settings TEST dictionary. 1.8.1, 1.8, 1.8c1, 1.8a1, 1.8b1, 1.8b2, 1.8.2, 1.8.5 (Show all) Patch → NO_SAFE_VERSION
CVE-2016-7401 The cookie parsing code in Django before 1.8.15 and 1.9.x before 1.9.10, when used on a site with Google Analytics, allows remote attackers to bypass an intended CSRF protection mechanism by setting arbitrary cookies. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2016-6186 Cross-site scripting (XSS) vulnerability in the dismissChangeRelatedObjectPopup function in contrib/admin/static/admin/js/admin/RelatedObjectLookups.js in Django before 1.8.14, 1.9.x before 1.9.8, and 1.10.x before 1.10rc1 allows remote attackers to inject arbitrary web script or HTML via vectors involving unsafe usage of Element.innerHTML. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2016-2513 The password hasher in contrib/auth/hashers.py in Django before 1.8.10 and 1.9.x before 1.9.3 allows remote attackers to enumerate users via a timing attack involving login requests. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2016-2512 The utils.http.is_safe_url function in Django before 1.8.10 and 1.9.x before 1.9.3 allows remote attackers to redirect users to arbitrary web sites and conduct phishing attacks or possibly conduct cross-site scripting (XSS) attacks via a URL containing basic authentication, as demonstrated by http://mysite.example.com\@attacker.com. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2016-2048 Django 1.9.x before 1.9.2, when ModelAdmin.save_as is set to True, allows remote authenticated users to bypass intended access restrictions and create ModelAdmin objects via the "Save as New" option when editing objects and leveraging the "change" permission. 1.9.1, 1.9 Patch → NO_SAFE_VERSION
CVE-2015-8213 The get_format function in utils/formats.py in Django before 1.7.x before 1.7.11, 1.8.x before 1.8.7, and 1.9.x before 1.9rc2 might allow remote attackers to obtain sensitive application secrets via a settings key in place of a date/time format setting, as demonstrated by SECRET_KEY. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2015-5964 The (1) contrib.sessions.backends.base.SessionBase.flush and (2) cache_db.SessionStore.flush functions in Django 1.7.x before 1.7.10, 1.4.x before 1.4.22, and possibly other versions create empty sessions in certain circumstances, which allows remote attackers to cause a denial of service (session store consumption) via unspecified vectors. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2015-5963 contrib.sessions.middleware.SessionMiddleware in Django 1.8.x before 1.8.4, 1.7.x before 1.7.10, 1.4.x before 1.4.22, and possibly other versions allows remote attackers to cause a denial of service (session store consumption or session record removal) via a large number of requests to contrib.auth.views.logout, which triggers the creation of an empty session record. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2015-5145 validators.URLValidator in Django 1.8.x before 1.8.3 allows remote attackers to cause a denial of service (CPU consumption) via unspecified vectors. 1.8.1, 1.8, 1.8c1, 1.8a1, 1.8b1, 1.8b2, 1.8.2 Patch → NO_SAFE_VERSION
CVE-2015-5144 Django before 1.4.21, 1.5.x through 1.6.x, 1.7.x before 1.7.9, and 1.8.x before 1.8.3 uses an incorrect regular expression, which allows remote attackers to inject arbitrary headers and conduct HTTP response splitting attacks via a newline character in an (1) email message to the EmailValidator, a (2) URL to the URLValidator, or unspecified vectors to the (3) validate_ipv4_address or (4) validate_slug validator. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2015-5143 The session backends in Django before 1.4.21, 1.5.x through 1.6.x, 1.7.x before 1.7.9, and 1.8.x before 1.8.3 allows remote attackers to cause a denial of service (session store consumption) via multiple requests with unique session keys. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2015-3982 The session.flush function in the cached_db backend in Django 1.8.x before 1.8.2 does not properly flush the session, which allows remote attackers to hijack user sessions via an empty string in the session key. 1.8.1, 1.8, 1.8c1, 1.8a1, 1.8b1, 1.8b2 Patch → NO_SAFE_VERSION
CVE-2015-2317 The utils.http.is_safe_url function in Django before 1.4.20, 1.5.x, 1.6.x before 1.6.11, 1.7.x before 1.7.7, and 1.8.x before 1.8c1 does not properly validate URLs, which allows remote attackers to conduct cross-site scripting (XSS) attacks via a control character in a URL, as demonstrated by a \x08javascript: URL. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2015-2316 The utils.html.strip_tags function in Django 1.6.x before 1.6.11, 1.7.x before 1.7.7, and 1.8.x before 1.8c1, when using certain versions of Python, allows remote attackers to cause a denial of service (infinite loop) by increasing the length of the input string. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2015-2241 Cross-site scripting (XSS) vulnerability in the contents function in admin/helpers.py in Django before 1.7.6 and 1.8 before 1.8b2 allows remote attackers to inject arbitrary web script or HTML via a model attribute in ModelAdmin.readonly_fields, as demonstrated by a @property. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2015-0222 ModelMultipleChoiceField in Django 1.6.x before 1.6.10 and 1.7.x before 1.7.3, when show_hidden_initial is set to True, allows remote attackers to cause a denial of service by submitting duplicate values, which triggers a large number of SQL queries. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2015-0221 The django.views.static.serve view in Django before 1.4.18, 1.6.x before 1.6.10, and 1.7.x before 1.7.3 reads files an entire line at a time, which allows remote attackers to cause a denial of service (memory consumption) via a long line in a file. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2015-0220 The django.util.http.is_safe_url function in Django before 1.4.18, 1.6.x before 1.6.10, and 1.7.x before 1.7.3 does not properly handle leading whitespaces, which allows remote attackers to conduct cross-site scripting (XSS) attacks via a crafted URL, related to redirect URLs, as demonstrated by a "\njavascript:" URL. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2015-0219 Django before 1.4.18, 1.6.x before 1.6.10, and 1.7.x before 1.7.3 allows remote attackers to spoof WSGI headers by using an _ (underscore) character instead of a - (dash) character in an HTTP header, as demonstrated by an X-Auth_User header. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2014-3730 The django.util.http.is_safe_url function in Django 1.4 before 1.4.13, 1.5 before 1.5.8, 1.6 before 1.6.5, and 1.7 before 1.7b4 does not properly validate URLs, which allows remote attackers to conduct open redirect attacks via a malformed URL, as demonstrated by "http:\\\djangoproject.com." 1.4.1, 1.4.2, 1.4, 1.4.3, 1.6.2, 1.6.1, 1.6.4, 1.6 (Show all) Patch → NO_SAFE_VERSION
CVE-2014-1418 Django 1.4 before 1.4.13, 1.5 before 1.5.8, 1.6 before 1.6.5, and 1.7 before 1.7b4 does not properly include the (1) Vary: Cookie or (2) Cache-Control header in responses, which allows remote attackers to obtain sensitive information or poison the cache via a request from certain browsers. 1.4.1, 1.4.2, 1.4, 1.4.3, 1.6.2, 1.6.1, 1.6.4, 1.6 (Show all) Patch → NO_SAFE_VERSION
CVE-2014-0483 The administrative interface (contrib.admin) in Django before 1.4.14, 1.5.x before 1.5.9, 1.6.x before 1.6.6, and 1.7 before release candidate 3 does not check if a field represents a relationship between models, which allows remote authenticated users to obtain sensitive information via a to_field parameter in a popup action to an admin change form page, as demonstrated by a /admin/auth/user/?pop=1&t=password URI. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2014-0482 The contrib.auth.middleware.RemoteUserMiddleware middleware in Django before 1.4.14, 1.5.x before 1.5.9, 1.6.x before 1.6.6, and 1.7 before release candidate 3, when using the contrib.auth.backends.RemoteUserBackend backend, allows remote authenticated users to hijack web sessions via vectors related to the REMOTE_USER header. 1.4.1, 1.4.2, 1.4, 1.4.3, 1.6.2, 1.6.1, 1.6.5, 1.6.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2014-0481 The default configuration for the file upload handling system in Django before 1.4.14, 1.5.x before 1.5.9, 1.6.x before 1.6.6, and 1.7 before release candidate 3 uses a sequential file name generation process when a file with a conflicting name is uploaded, which allows remote attackers to cause a denial of service (CPU consumption) by unloading a multiple files with the same name. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2014-0480 The core.urlresolvers.reverse function in Django before 1.4.14, 1.5.x before 1.5.9, 1.6.x before 1.6.6, and 1.7 before release candidate 3 does not properly validate URLs, which allows remote attackers to conduct phishing attacks via a // (slash slash) in a URL, which triggers a scheme-relative URL to be generated. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2014-0474 The (1) FilePathField, (2) GenericIPAddressField, and (3) IPAddressField model field classes in Django before 1.4.11, 1.5.x before 1.5.6, 1.6.x before 1.6.3, and 1.7.x before 1.7 beta 2 do not properly perform type conversion, which allows remote attackers to have unspecified impact and vectors, related to "MySQL typecasting." 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2014-0473 The caching framework in Django before 1.4.11, 1.5.x before 1.5.6, 1.6.x before 1.6.3, and 1.7.x before 1.7 beta 2 reuses a cached CSRF token for all anonymous users, which allows remote attackers to bypass CSRF protections by reading the CSRF cookie for anonymous users. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2014-0472 The django.core.urlresolvers.reverse function in Django before 1.4.11, 1.5.x before 1.5.6, 1.6.x before 1.6.3, and 1.7.x before 1.7 beta 2 allows remote attackers to import and execute arbitrary Python modules by leveraging a view that constructs URLs using user input and a "dotted Python path." 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2013-6044 The is_safe_url function in utils/http.py in Django 1.4.x before 1.4.6, 1.5.x before 1.5.2, and 1.6 before beta 2 treats a URL's scheme as safe even if it is not HTTP or HTTPS, which might introduce cross-site scripting (XSS) or other vulnerabilities into Django applications that use this function, as demonstrated by "the login view in django.contrib.auth.views" and the javascript: scheme. 1.4.1, 1.4.2, 1.4, 1.4.3, 1.5.1, 1.4.5, 1.4.4, 1.5 Patch → NO_SAFE_VERSION
CVE-2013-4315 Directory traversal vulnerability in Django 1.4.x before 1.4.7, 1.5.x before 1.5.3, and 1.6.x before 1.6 beta 3 allows remote attackers to read arbitrary files via a file path in the ALLOWED_INCLUDE_ROOTS setting followed by a .. (dot dot) in a ssi template tag. 1.4.1, 1.4.2, 1.4, 1.4.3, 1.5.2, 1.5.1, 1.4.6, 1.4.5 (Show all) Patch → NO_SAFE_VERSION
CVE-2013-4249 Cross-site scripting (XSS) vulnerability in the AdminURLFieldWidget widget in contrib/admin/widgets.py in Django 1.5.x before 1.5.2 and 1.6.x before 1.6 beta 2 allows remote attackers to inject arbitrary web script or HTML via a URLField. 1.5.1, 1.5 Patch → NO_SAFE_VERSION
CVE-2013-1665 The XML libraries for Python 3.4, 3.3, 3.2, 3.1, 2.7, and 2.6, as used in OpenStack Keystone Essex and Folsom, Django, and possibly other products allow remote attackers to read arbitrary files via an XML external entity declaration in conjunction with an entity reference, aka an XML External Entity (XXE) attack. 1.3, 1.4.1, 1.4.2, 1.4, 1.3.3, 1.3.2, 1.3.5, 1.3.1 (Show all) Patch → NO_SAFE_VERSION
CVE-2013-1664 The XML libraries for Python 3.4, 3.3, 3.2, 3.1, 2.7, and 2.6, as used in OpenStack Keystone Essex, Folsom, and Grizzly; Compute (Nova) Essex and Folsom; Cinder Folsom; Django; and possibly other products allow remote attackers to cause a denial of service (resource consumption and crash) via an XML Entity Expansion (XEE) attack. 1.3, 1.4.1, 1.4.2, 1.4, 1.3.3, 1.3.2, 1.3.5, 1.3.1 (Show all) Patch → NO_SAFE_VERSION
CVE-2013-1443 The authentication framework (django.contrib.auth) in Django 1.4.x before 1.4.8, 1.5.x before 1.5.4, and 1.6.x before 1.6 beta 4 allows remote attackers to cause a denial of service (CPU consumption) via a long password which is then hashed. 1.4.1, 1.4.2, 1.4, 1.4.3, 1.5.3, 1.5.2, 1.5.1, 1.4.7 (Show all) Patch → NO_SAFE_VERSION
CVE-2013-0306 The form library in Django 1.3.x before 1.3.6, 1.4.x before 1.4.4, and 1.5 before release candidate 2 allows remote attackers to bypass intended resource limits for formsets and cause a denial of service (memory consumption) or trigger server errors via a modified max_num parameter. 1.3, 1.4.1, 1.4.2, 1.4, 1.3.3, 1.3.2, 1.3.5, 1.3.1 (Show all) Patch → NO_SAFE_VERSION
CVE-2013-0305 The administrative interface for Django 1.3.x before 1.3.6, 1.4.x before 1.4.4, and 1.5 before release candidate 2 does not check permissions for the history view, which allows remote authenticated administrators to obtain sensitive object history information. 1.3, 1.4.1, 1.4.2, 1.4, 1.3.3, 1.3.2, 1.3.5, 1.3.1 (Show all) Patch → NO_SAFE_VERSION
CVE-2012-4520 The django.http.HttpRequest.get_host function in Django 1.3.x before 1.3.4 and 1.4.x before 1.4.2 allows remote attackers to generate and display arbitrary URLs via crafted username and password Host header values. 1.3, 1.4.1, 1.4, 1.3.3, 1.3.2, 1.3.1 Patch → NO_SAFE_VERSION
CVE-2012-3444 The get_image_dimensions function in the image-handling functionality in Django before 1.3.2 and 1.4.x before 1.4.1 uses a constant chunk size in all attempts to determine dimensions, which allows remote attackers to cause a denial of service (process or thread consumption) via a large TIFF image. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2012-3443 The django.forms.ImageField class in the form system in Django before 1.3.2 and 1.4.x before 1.4.1 completely decompresses image data during image validation, which allows remote attackers to cause a denial of service (memory consumption) by uploading an image file. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2012-3442 The (1) django.http.HttpResponseRedirect and (2) django.http.HttpResponsePermanentRedirect classes in Django before 1.3.2 and 1.4.x before 1.4.1 do not validate the scheme of a redirect target, which might allow remote attackers to conduct cross-site scripting (XSS) attacks via a data: URL. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2011-4140 The CSRF protection mechanism in Django through 1.2.7 and 1.3.x through 1.3.1 does not properly handle web-server configurations supporting arbitrary HTTP Host headers, which allows remote attackers to trigger unauthenticated forged requests via vectors involving a DNS CNAME record and a web page containing JavaScript code. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2011-4139 Django before 1.2.7 and 1.3.x before 1.3.1 uses a request's HTTP Host header to construct a full URL in certain circumstances, which allows remote attackers to conduct cache poisoning attacks via a crafted request. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2011-4138 The verify_exists functionality in the URLField implementation in Django before 1.2.7 and 1.3.x before 1.3.1 originally tests a URL's validity through a HEAD request, but then uses a GET request for the new target URL in the case of a redirect, which might allow remote attackers to trigger arbitrary GET requests with an unintended source IP address via a crafted Location header. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2011-4137 The verify_exists functionality in the URLField implementation in Django before 1.2.7 and 1.3.x before 1.3.1 relies on Python libraries that attempt access to an arbitrary URL with no timeout, which allows remote attackers to cause a denial of service (resource consumption) via a URL associated with (1) a slow response, (2) a completed TCP connection with no application data sent, or (3) a large amount of application data, a related issue to CVE-2011-1521. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2011-4136 django.contrib.sessions in Django before 1.2.7 and 1.3.x before 1.3.1, when session data is stored in the cache, uses the root namespace for both session identifiers and application-data keys, which allows remote attackers to modify a session by triggering use of a key that is equal to that session's identifier. 1.2, 1.2.1, 1.1.3, 1.3, 1.2.6, 1.2.5, 1.2.3, 1.2.4 (Show all) Patch → NO_SAFE_VERSION
CVE-2011-0698 Directory traversal vulnerability in Django 1.1.x before 1.1.4 and 1.2.x before 1.2.5 on Windows might allow remote attackers to read or execute files via a / (slash) character in a key in a session cookie, related to session replays. 1.2, 1.2.1, 1.1.3, 1.2.3, 1.2.4, 1.2.2 Patch → NO_SAFE_VERSION
CVE-2011-0697 Cross-site scripting (XSS) vulnerability in Django 1.1.x before 1.1.4 and 1.2.x before 1.2.5 might allow remote attackers to inject arbitrary web script or HTML via a filename associated with a file upload. 1.2, 1.2.1, 1.1.3, 1.2.3, 1.2.4, 1.2.2 Patch → NO_SAFE_VERSION
CVE-2011-0696 Django 1.1.x before 1.1.4 and 1.2.x before 1.2.5 does not properly validate HTTP requests that contain an X-Requested-With header, which makes it easier for remote attackers to conduct cross-site request forgery (CSRF) attacks via forged AJAX requests that leverage a "combination of browser plugins and redirects," a related issue to CVE-2011-0447. 1.2, 1.2.1, 1.1.3, 1.2.3, 1.2.4, 1.2.2 Patch → NO_SAFE_VERSION
CVE-2010-4535 The password reset functionality in django.contrib.auth in Django before 1.1.3, 1.2.x before 1.2.4, and 1.3.x before 1.3 beta 1 does not validate the length of a string representing a base36 timestamp, which allows remote attackers to cause a denial of service (resource consumption) via a URL that specifies a large base36 integer. 1.2, 1.2.1, 1.2.3, 1.2.2 Patch → NO_SAFE_VERSION
CVE-2010-4534 The administrative interface in django.contrib.admin in Django before 1.1.3, 1.2.x before 1.2.4, and 1.3.x before 1.3 beta 1 does not properly restrict use of the query string to perform certain object filtering, which allows remote authenticated users to obtain sensitive information via a series of requests containing regular expressions, as demonstrated by a created_by__password__regex parameter. 1.2, 1.2.1, 1.2.3, 1.2.2 Patch → NO_SAFE_VERSION
CVE-2010-3082 Cross-site scripting (XSS) vulnerability in Django 1.2.x before 1.2.2 allows remote attackers to inject arbitrary web script or HTML via a csrfmiddlewaretoken (aka csrf_token) cookie. 1.2, 1.2.1 Patch → NO_SAFE_VERSION

Instantly see if these Django vulnerabilities affect your code.

Scan for Free

Dependencies

Packages using versions of Django affected by its vulnerabilities

Dependent Packages
asgiref<4,>=3.8.1
sqlparse>=0.3.1
tzdata; sys_platform == "win32"
argon2-cffi>=19.1.0; extra == "argon2"
bcrypt; extra == "bcrypt"