CVE-2024-39330 json
Django Path Traversal vulnerability
published 2024-07-10 2 y ago modified 2026-09-10 59 d ago also BIT-django-2024-39330 , EUVD-2024-0042 , GHSA-9jmf-237g-qf46 , PYSEC-2024-58
- cvss
- 4.3
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 1.0%
- EPSS 1.0% chance of exploitation in 30 days, percentile 63%
- public exploits
- 0
- none known
Summary
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.)
Patch / fix
- pypi django 4.2.14, 5.0.7
- bitnami django 4.2.14, 5.0.7
- djangoproject django 4.2.14, 5.0.7
- python-django Debian 12 3:3.2.25-0+deb12u1
- python-django Debian 14, Debian 13 3:4.2.14-1
debian advisories DEBIAN-CVE-2024-39330
- python-django Ubuntu 20.04 LTS 2:2.2.12-1ubuntu0.23
- python-django Ubuntu 22.04 LTS 2:3.2.12-2ubuntu1.12
- python-django Ubuntu 24.04 LTS 3:4.2.11-1ubuntu1.1
- python-django Ubuntu Pro 18.04 LTS 1:1.11.11-1ubuntu1.21+esm5
ubuntu advisories UBUNTU-CVE-2024-39330
Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
- cjson satellite capsule 6.16, satellite 6.16 1.7.17-1.el8sat
- cjson satellite capsule 6.16, satellite 6.16 1.7.17-1.el9sat
- foreman satellite utils 6.16, satellite capsule 6.16, satellite 6.16 3.12.0.1-1.el8sat
- foreman satellite utils 6.16, satellite capsule 6.16, satellite 6.16 3.12.0.1-1.el9sat
- katello satellite capsule 6.16, satellite 6.16 4.14.0-0.1.rc2.el8sat
- katello satellite capsule 6.16, satellite 6.16 4.14.0-0.1.rc2.el9sat
- libsolv satellite capsule 6.16, satellite 6.16 1:0.7.20-6.el8sat
- libcomps satellite capsule 6.16, satellite 6.16 0.1.21-1.el8pc
red hat advisories RHSA-2024:8906RHSA-2024:9481RHSA-2024:6428
- python-Django SLE Module for Package Hub 15 SP6, openSUSE Leap 15.6 4.2.11-150600.3.3.1
- python-Django openSUSE Leap 15.5 2.0.7-150000.1.20.1
suse advisories SUSE-SU-2024:2577-1SUSE-SU-2024:2545-1
- python-Django5 openSUSE Tumbleweed 5.2.16-1.1
- python-Django openSUSE Tumbleweed 5.2.16-1.1
- python-Django4 openSUSE Tumbleweed 4.2.30-4.1
- python-django-storages openSUSE Tumbleweed 1.14.6-1.1
- python-Django6 openSUSE Tumbleweed 6.0-1.1
- python-Django Package Hub 15 SP5, openSUSE Leap 15.5 2.2.28-bp155.7.12.1
- python-Django4 openSUSE Tumbleweed 4.2.14-1.1
- python-Django openSUSE Tumbleweed 5.0.7-2.1
opensuse advisories openSUSE-SU-2026:11270-1openSUSE-SU-2026:11248-1openSUSE-SU-2026:11235-1openSUSE-SU-2026:10125-1openSUSE-SU-2026:10005-1openSUSE-SU-2024:0251-1
- py3-django Alpine 3.24, Alpine 3.23, Alpine 3.22 +2 more 4.2.16-r0
alpine advisories ALPINE-CVE-2024-39330
Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0
Vendor advisories
What the vendors themselves say about their products: affected, fixed or not affected, and what to do.
red hat product security vex CVE-2024-39330 updated cvss 4.3
python-django: Potential directory-traversal in django.core.files.storage.Storage.save()
-
Red Hat Ansible Automation Platform 1.2 ansible-toweraffected: workaround, no fix available
-
Red Hat Ansible Automation Platform 2 automation-controller, ansible-automation-platform-25/lightspeed-rhel8 Red Hat Certification for Red Hat Enterprise Linux 7 python-django Red Hat Certification for Red Hat Enterprise Linux 8 redhat-certification Red Hat Certification Program for Red Hat Enterprise Linux 9 redhat-certificationaffected: workaround, no fix available “Fix deferred”
-
Red Hat Discovery 1 discovery-server-containeraffected: workaround, no fix available
-
Red Hat OpenStack Platform 16.1 python-django20, python3-django20, python-django20-bash-completionaffected: workaround, no fix planned “Out of support scope”
-
Red Hat OpenStack Platform 16.2 python-django20, python3-django20, python-django20-bash-completion Red Hat OpenStack Platform 17.1 python-django, python3-djangoaffected: workaround, no fix available “Fix deferred”
-
Red Hat Storage 3 python-django, python2-django, python-django-bash-completionaffected: workaround, no fix planned “Out of support scope”
-
Red Hat Update Infrastructure 4 for Cloud Providers python-djangoaffected: workaround, no fix available “Fix deferred”
-
Red Hat Ansible Automation Platform 2.4 for RHEL 8 python39-django 4.2.15-1.el8ap, python3x-django 4.2.15-1.el8ap Red Hat Ansible Automation Platform 2.4 for RHEL 9 python-django 4.2.15-1.el9ap, python3-django 4.2.15-1.el9apfixed: vendor fix RHSA-2024:6428
show 3 moreshow fewer
-
Red Hat OpenStack Services on OpenShift 18.0 python-django 3.2.12-8.el9ost, python3-django 3.2.12-8.el9ostfixed: vendor fix RHSA-2024:9481
-
Red Hat Satellite 6.16 for RHEL 8 python-django 4.2.16-1.el8pc, python3.11-django 4.2.16-1.el8pc Red Hat Satellite 6.16 for RHEL 9 python-django 4.2.16-1.el9pc, python3.11-django 4.2.16-1.el9pcfixed: vendor fix RHSA-2024:8906
-
Red Hat Ansible Automation Platform 2.4 for RHEL 8 python39-zipp 3.19.2-1.el8ap, python39-grpcio 1.58.3-1.el8ap, python3x-grpcio 1.58.3-1.el8ap, python39-gunicorn 22.0.0-2.el8ap, python39-jmespath 0.10.0-5.el8ap, python3x-gunicorn 22.0.0-2.el8ap, +10 more Red Hat Ansible Automation Platform 2.4 for RHEL 9 python-zipp 3.19.2-1.el9ap, python3-zipp 3.19.2-1.el9ap, python-grpcio 1.58.3-1.el9ap, python3-grpcio 1.58.3-1.el9ap, python-gunicorn 22.0.0-2.el9ap, python-jmespath 0.10.0-5.el9ap, +11 more Red Hat Satellite 6.16 for RHEL 8 cjson 1.7.17-1.el8sat, libcomps 0.1.21-1.el8pc, libsolv 0.7.20-6.el8sat, python-jq 1.6.0-3.el8pc, python-pbr 5.8.0-7.el8pc, candlepin 4.4.16-1.el8sat, +675 more Red Hat Satellite 6.16 for RHEL 9 cjson 1.7.17-1.el9sat, libcomps 0.1.21-1.el9pc, python-jq 1.6.0-3.el9pc, python-pbr 5.8.0-7.el9pc, candlepin 4.4.16-1.el9sat, foreman 3.12.0.1-1.el9sat, +645 morenot affected: vulnerable code not present
Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2 y ago
Exploit prediction
1.01% chance of exploitation in the next 30 days, higher than 63% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CISA ADP | 3.1 | 4.3 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N |
| GitHub | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
| CNA | 3.1 | 4.3 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N |
| OSV | 3.1 | 4.3 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | django | >=5.0, <5.0.7 >=4.2, <4.2.14 |
5.0.7 4.2.14 |
| bitnami | django | >=4.2.0, <4.2.14 >=5.0.0, <5.0.7 |
4.2.14 5.0.7 |
Classification
- Weakness
-
- CWE-22 Improper Limitation of a Pathname to a Restricted Directory
- Technology feeds
References
-
github.com
/django/django/commit/2b00edc0151a660d1eb86da4059904a0fc4e095e
web
-
github.com
/django/django/commit/9f4f63e9ebb7bf6cb9547ee4e2526b9b96703270
web
-
docs.djangoproject.com
/en/dev/releases/security/
vendor-advisory, advisory, web
-
djangoproject.com
/weblog/2024/jul/09/security-releases/
vendor-advisory, advisory, article
-
groups.google.com
/forum/#%21forum/django-announce
web, permissions-required
-
security.netapp.com
/advisory/ntap-20240808-0005/
web
-
nvd.nist.gov
/vuln/detail/CVE-2024-39330
advisory, web
-
docs.djangoproject.com
/en/dev/releases/security
web
-
github.com
/django/django
package
-
github.com
/pypa/advisory-database/tree/main/vulns/django/PYSEC-2024-58.yaml
web
-
security.netapp.com
/advisory/ntap-20240808-0005
web
-
djangoproject.com
/weblog/2024/jul/09/security-releases
web
-
github.com
/advisories/GHSA-9jmf-237g-qf46
advisory
Sources
- CVE List CVE-2024-39330
- GitHub Advisory GHSA-9jmf-237g-qf46
- NVD CVE-2024-39330
- OSV BIT-django-2024-39330
- OSV PYSEC-2024-58
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.