CVE-2020-24583
Django Incorrect Default Permissions
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
NVD Score used
7.5
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.
- Record
CVE-2020-24583- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - CVSS 2.0
- 5.0 Medium
AV:N/AC:L/Au:N/C:P/I:N/A:N - Weakness
- CWE-276
- Updated
- 2026-11-02
CVE List No score
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.
- Record
CVE-2020-24583- Updated
- 2026-11-02
EUVDEUVD-2020-0069 No score
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.
- Record
EUVD-2020-0069- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-m6gj-h9gm-gw44
8.7
Django Incorrect Default Permissions
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.
- Record
GHSA-m6gj-h9gm-gw44- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N - CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-276
- Updated
- 2026-11-02
OSVALPINE-CVE-2020-24583
7.5
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.
- Record
ALPINE-CVE-2020-24583- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-03
OSV
7.5
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.
- Record
CVE-2020-24583- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
Show 13 moreShow less
OSVDEBIAN-CVE-2020-24583
7.5
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.
- Record
DEBIAN-CVE-2020-24583- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
OSVGHSA-m6gj-h9gm-gw44
8.7
Django Incorrect Default Permissions
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.
- Record
GHSA-m6gj-h9gm-gw44- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N - CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-276
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2020-24583
7.5
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.
- Record
UBUNTU-CVE-2020-24583- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
OSVBIT-django-2020-24583 No score
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.
- Record
BIT-django-2020-24583- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:11205-1 No score
python36-Django-3.2.7-2.3 on GA media
These are all security issues fixed in the python36-Django-3.2.7-2.3 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:11205-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:13887-1 No score
python310-Django-4.2.11-2.1 on GA media
These are all security issues fixed in the python310-Django-4.2.11-2.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:13887-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:14208-1 No score
python310-Django4-4.2.14-1.1 on GA media
These are all security issues fixed in the python310-Django4-4.2.14-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:14208-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:10005-1 No score
python312-Django6-6.0-1.1 on GA media
These are all security issues fixed in the python312-Django6-6.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:10005-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11235-1 No score
python313-Django4-4.2.30-4.1 on GA media
These are all security issues fixed in the python313-Django4-4.2.30-4.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11235-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11248-1 No score
python313-Django-5.2.16-1.1 on GA media
These are all security issues fixed in the python313-Django-5.2.16-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11248-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11270-1 No score
python313-Django5-5.2.16-1.1 on GA media
These are all security issues fixed in the python313-Django5-5.2.16-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11270-1- Updated
- 2026-11-02
OSVPYSEC-2020-33 No score
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.
- Record
PYSEC-2020-33- Updated
- 2026-11-02
OSVUSN-4479-1 No score
python-django vulnerabilities
It was discovered that Django, when used with Python 3.7 or higher, incorrectly handled directory permissions. A local attacker could possibly use this issue to obtain sensitive information, or escalate permissions.
- Record
USN-4479-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
djangoPyPI |
2.2a1 up to 2.2.16 | 2.2.16 |
djangoPyPI |
3.0a1 up to 3.0.10 | 3.0.10 |
djangoPyPI |
3.1a1 up to 3.1.1 | 3.1.1 |
py-djangoAlpine:v3.10 |
before 1.11.29-r1 | 1.11.29-r1 |
py-djangoAlpine:v3.9 |
before 1.11.29-r1 | 1.11.29-r1 |
py3-djangoAlpine:v3.11 |
before 1.11.29-r1 | 1.11.29-r1 |
py3-djangoAlpine:v3.12 |
before 1.11.29-r1 | 1.11.29-r1 |
py3-djangoAlpine:v3.13 |
before 3.1.1-r0 | 3.1.1-r0 |
py3-djangoAlpine:v3.14 |
before 3.1.1-r0 | 3.1.1-r0 |
py3-djangoAlpine:v3.15 |
before 3.1.1-r0 | 3.1.1-r0 |
Show 27 moreShow less
| Package | Affected | Fixed |
|---|---|---|
py3-djangoAlpine:v3.16 |
before 3.1.1-r0 | 3.1.1-r0 |
py3-djangoAlpine:v3.17 |
before 3.1.1-r0 | 3.1.1-r0 |
py3-djangoAlpine:v3.18 |
before 3.1.1-r0 | 3.1.1-r0 |
py3-djangoAlpine:v3.19 |
before 3.1.1-r0 | 3.1.1-r0 |
py3-djangoAlpine:v3.20 |
before 3.1.1-r0 | 3.1.1-r0 |
py3-djangoAlpine:v3.21 |
before 3.1.1-r0 | 3.1.1-r0 |
py3-djangoAlpine:v3.22 |
before 3.1.1-r0 | 3.1.1-r0 |
py3-djangoAlpine:v3.23 |
before 3.1.1-r0 | 3.1.1-r0 |
py3-djangoAlpine:v3.24 |
before 3.1.1-r0 | 3.1.1-r0 |
djangoBitnami |
2.2.0 up to 2.2.16, 3.0.0 up to 3.0.10, 3.1.0 up to 3.1.1 | 2.2.163.0.103.1.1 |
python-djangoDebian:12 |
before 2:2.2.16-1 | 2:2.2.16-1 |
python-djangoDebian:13 |
before 2:2.2.16-1 | 2:2.2.16-1 |
python-djangoDebian:14 |
before 2:2.2.16-1 | 2:2.2.16-1 |
python-djangoDebian:10 From an advisory covering 5 CVEs |
before 1:1.11.29-1+deb10u2, plus listed versions 1:1.11.21-11:1.11.22-11:1.11.22-1~deb10u11:1.11.23-1~deb10u11:1.11.27-1~deb10u11:1.11.28-1~deb10u11:1.11.29-1~deb10u1 |
1:1.11.29-1+deb10u2 |
djangoPyPI |
2.2a1 up to 2.2.16, plus listed versions 2.22.2.12.2.102.2.112.2.12 Show 13 moreShow less2.2.132.2.142.2.152.2.22.2.32.2.42.2.52.2.62.2.72.2.82.2.92.2b12.2rc1 |
2.2.16 |
djangoPyPI |
3.0a1 up to 3.0.10, plus listed versions 3.03.0.13.0.23.0.33.0.4 Show 7 moreShow less3.0.53.0.63.0.73.0.83.0.93.0b13.0rc1 |
3.0.10 |
djangoPyPI |
3.1a1 up to 3.1.1, plus listed versions 3.13.1b13.1rc1 |
3.1.1 |
djangoPyPI |
2.2 up to 2.2.16, 3.0 up to 3.0.10, 3.1 up to 3.1.1, plus listed versions 2.2.12.2.22.2.32.2.42.2.5 Show 19 moreShow less2.2.62.2.72.2.82.2.92.2.102.2.112.2.122.2.132.2.142.2.153.0.13.0.23.0.33.0.43.0.53.0.63.0.73.0.83.0.9 |
2.2.163.0.103.1.1 |
python-djangoUbuntu:20.04:LTS |
before 2:2.2.12-1ubuntu0.2, plus listed versions 1:1.11.22-1ubuntu12:2.2.6-1ubuntu12:2.2.9-2ubuntu12:2.2.10-12:2.2.10-1ubuntu12:2.2.11-12:2.2.12-12:2.2.12-1ubuntu0.1 |
2:2.2.12-1ubuntu0.2 |
python-djangoUbuntu:20.04:LTS From an advisory covering 2 CVEs |
before 2:2.2.12-1ubuntu0.2, plus listed versions 1:1.11.22-1ubuntu12:2.2.6-1ubuntu12:2.2.9-2ubuntu12:2.2.10-12:2.2.10-1ubuntu12:2.2.11-12:2.2.12-12:2.2.12-1ubuntu0.1 |
2:2.2.12-1ubuntu0.2 |
python-DjangoopenSUSE:Tumbleweed From an advisory covering 30 CVEs |
before 3.2.7-2.3 | 3.2.7-2.3 |
python-DjangoopenSUSE:Tumbleweed From an advisory covering 30 CVEs |
before 4.2.11-2.1 | 4.2.11-2.1 |
python-Django4openSUSE:Tumbleweed From an advisory covering 51 CVEs |
before 4.2.14-1.1 | 4.2.14-1.1 |
python-Django6openSUSE:Tumbleweed From an advisory covering 70 CVEs |
before 6.0-1.1 | 6.0-1.1 |
python-Django4openSUSE:Tumbleweed From an advisory covering 59 CVEs |
before 4.2.30-4.1 | 4.2.30-4.1 |
python-DjangoopenSUSE:Tumbleweed From an advisory covering 49 CVEs |
before 5.2.16-1.1 | 5.2.16-1.1 |
python-Django5openSUSE:Tumbleweed From an advisory covering 93 CVEs |
before 5.2.16-1.1 | 5.2.16-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| affected | OSV | |
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2020-24583 is a high vulnerability (CVSS 7.5) in Djangoproject Django, published September 1, 2020. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 3.97%, the 90th percentile. Fixed in django 2.2.16.
References
docs.djangoproject.com/en/dev/releases/security
usn.ubuntu.com/4479-1
lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/F2ZHO3GZCJMP3DDTXCNVFV6ED3W64NAU
lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/ZCRPQCBTV3RZHKVZ6K6QOAANPRZQD3GI
lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/OLGFFLMF3X6USMJD7V5F5P4K2WVUTO3T
oracle.com/security-alerts/cpujan2021.html
Show 111 moreShow less
groups.google.com/forum
openwall.com/lists/oss-security/2020/09/01/2
djangoproject.com/weblog/2020/sep/01/security-releases
security.netapp.com/advisory/ntap-20200918-0004
nvd.nist.gov/vuln/detail/CVE-2020-24583
github.com/django/django/commit/8d7271578d7b153435b40fe40236ebec43cbf1b9
github.com/advisories/GHSA-m6gj-h9gm-gw44
github.com/pypa/advisory-database/tree/main/vulns/django/PYSEC-2020-33.yaml
lists.fedoraproject.org/archives/list/[email protected]/message/F2ZHO3GZCJMP3DDTXCNVFV6ED3W64NAU
lists.fedoraproject.org/archives/list/[email protected]/message/OLGFFLMF3X6USMJD7V5F5P4K2WVUTO3T
lists.fedoraproject.org/archives/list/[email protected]/message/ZCRPQCBTV3RZHKVZ6K6QOAANPRZQD3GI
security.alpinelinux.org/vuln/CVE-2020-24583
security-tracker.debian.org/tracker/CVE-2020-24583
github.com/django/django
ubuntu.com/security/CVE-2020-24583
ubuntu.com/security/notices/USN-4479-1
cve.org/CVERecord?id=CVE-2020-24583
ubuntu.com/security/CVE-2020-24584
suse.com/security/cve/CVE-2015-3982
suse.com/security/cve/CVE-2015-5145
suse.com/security/cve/CVE-2015-5963
suse.com/security/cve/CVE-2016-7401
suse.com/security/cve/CVE-2017-12794
suse.com/security/cve/CVE-2017-7233
suse.com/security/cve/CVE-2017-7234
suse.com/security/cve/CVE-2018-16984
suse.com/security/cve/CVE-2018-6188
suse.com/security/cve/CVE-2018-7536
suse.com/security/cve/CVE-2018-7537
suse.com/security/cve/CVE-2019-11358
suse.com/security/cve/CVE-2019-12308
suse.com/security/cve/CVE-2019-12781
suse.com/security/cve/CVE-2019-14232
suse.com/security/cve/CVE-2019-19118
suse.com/security/cve/CVE-2019-19844
suse.com/security/cve/CVE-2019-3498
suse.com/security/cve/CVE-2019-6975
suse.com/security/cve/CVE-2020-13254
suse.com/security/cve/CVE-2020-13596
suse.com/security/cve/CVE-2020-24583
suse.com/security/cve/CVE-2020-24584
suse.com/security/cve/CVE-2020-7471
suse.com/security/cve/CVE-2020-9402
suse.com/security/cve/CVE-2021-31542
suse.com/security/cve/CVE-2021-32052
suse.com/security/cve/CVE-2021-33203
suse.com/security/cve/CVE-2021-33571
suse.com/security/cve/CVE-2021-35042
suse.com/security/cve/CVE-2021-45115
suse.com/security/cve/CVE-2021-45452
suse.com/security/cve/CVE-2022-22818
suse.com/security/cve/CVE-2022-23833
suse.com/security/cve/CVE-2022-28346
suse.com/security/cve/CVE-2022-28347
suse.com/security/cve/CVE-2022-34265
suse.com/security/cve/CVE-2022-36359
suse.com/security/cve/CVE-2022-41323
suse.com/security/cve/CVE-2023-23969
suse.com/security/cve/CVE-2023-24580
suse.com/security/cve/CVE-2023-31047
suse.com/security/cve/CVE-2023-36053
suse.com/security/cve/CVE-2023-41164
suse.com/security/cve/CVE-2023-43665
suse.com/security/cve/CVE-2024-24680
suse.com/security/cve/CVE-2024-27351
suse.com/security/cve/CVE-2024-38875
suse.com/security/cve/CVE-2024-39329
suse.com/security/cve/CVE-2024-39330
suse.com/security/cve/CVE-2024-39614
suse.com/security/cve/CVE-2024-41989
suse.com/security/cve/CVE-2024-41990
suse.com/security/cve/CVE-2024-41991
suse.com/security/cve/CVE-2024-42005
suse.com/security/cve/CVE-2024-45230
suse.com/security/cve/CVE-2024-45231
suse.com/security/cve/CVE-2024-53907
suse.com/security/cve/CVE-2024-53908
suse.com/security/cve/CVE-2024-56374
suse.com/security/cve/CVE-2025-13372
suse.com/security/cve/CVE-2025-26699
suse.com/security/cve/CVE-2025-27556
suse.com/security/cve/CVE-2025-32873
suse.com/security/cve/CVE-2025-48432
suse.com/security/cve/CVE-2025-57833
suse.com/security/cve/CVE-2025-59681
suse.com/security/cve/CVE-2025-59682
suse.com/security/cve/CVE-2025-64459
suse.com/security/cve/CVE-2025-64460
suse.com/security/cve/CVE-2026-48588
suse.com/security/cve/CVE-2026-53877
suse.com/security/cve/CVE-2026-53878
suse.com/security/cve/CVE-2025-13473
suse.com/security/cve/CVE-2025-14550
suse.com/security/cve/CVE-2026-1207
suse.com/security/cve/CVE-2026-1285
suse.com/security/cve/CVE-2026-1287
suse.com/security/cve/CVE-2026-1312
suse.com/security/cve/CVE-2026-25674
suse.com/security/cve/CVE-2026-33033
suse.com/security/cve/CVE-2026-33034
suse.com/security/cve/CVE-2026-35192
suse.com/security/cve/CVE-2026-35193
suse.com/security/cve/CVE-2026-3902
suse.com/security/cve/CVE-2026-4277
suse.com/security/cve/CVE-2026-4292
suse.com/security/cve/CVE-2026-48587
suse.com/security/cve/CVE-2026-5766
suse.com/security/cve/CVE-2026-6873
suse.com/security/cve/CVE-2026-6907
suse.com/security/cve/CVE-2026-7666
suse.com/security/cve/CVE-2026-8404