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…
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CISA ADP. Fix status from CNA, GitHub and Red Hat. Impact type from CWE-862.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| — | — | all versions | — | No fix listed | CNA |
| — | Django (PyPI) | 3.2a1 to before 3.2.19 | 3.2.19 | Patch available | GHSA-r3xc-prgr-mg9p |
| — | Django (PyPI) | 4.0a1 to before 4.1.9 | 4.1.9 | Patch available | GHSA-r3xc-prgr-mg9p |
| — | Django (PyPI) | 4.2a1 to before 4.2.1 | 4.2.1 | Patch available | GHSA-r3xc-prgr-mg9p |
- — Vendor— Affected all versions Fixed in — No fix listed CNA
- Django (PyPI) Vendor— Affected 3.2a1 to before 3.2.19 Fixed in 3.2.19 Patch available GHSA-r3xc-prgr-mg9p
- Django (PyPI) Vendor— Affected 4.0a1 to before 4.1.9 Fixed in 4.1.9 Patch available GHSA-r3xc-prgr-mg9p
- Django (PyPI) Vendor— Affected 4.2a1 to before 4.2.1 Fixed in 4.2.1 Patch available GHSA-r3xc-prgr-mg9p
CPE configurations NVD · 5
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:djangoproject:django:*:*:*:*:*:*:*:* | 3.2 to before 3.2.19; 4.0 to before 4.1.9 | Vulnerable | djangoproject |
| cpe:2.3:a:djangoproject:django:4.2:-:*:*:*:*:*:* | 4.2 | Vulnerable | djangoproject |
| cpe:2.3:a:djangoproject:django:4.2:b1:*:*:*:*:*:* | 4.2 b1 | Vulnerable | djangoproject |
| cpe:2.3:a:djangoproject:django:4.2:rc1:*:*:*:*:*:* | 4.2 rc1 | Vulnerable | djangoproject |
| cpe:2.3:o:fedoraproject:fedora:38:*:*:*:*:*:*:* | 38 | Vulnerable | Fedoraproject |
- cpe:2.3:a:djangoproject:django:*:*:*:*:*:*:*:* Versions 3.2 to before 3.2.19; 4.0 to before 4.1.9 Vulnerable ·djangoproject
- cpe:2.3:a:djangoproject:django:4.2:-:*:*:*:*:*:* Versions 4.2 Vulnerable ·djangoproject
- cpe:2.3:a:djangoproject:django:4.2:b1:*:*:*:*:*:* Versions 4.2 b1 Vulnerable ·djangoproject
- cpe:2.3:a:djangoproject:django:4.2:rc1:*:*:*:*:*:* Versions 4.2 rc1 Vulnerable ·djangoproject
- cpe:2.3:o:fedoraproject:fedora:38:*:*:*:*:*:*:* Versions 38 Vulnerable ·Fedoraproject
Remediation
- Fix · GHSA-r3xc-prgr-mg9p Django (PyPI) Fixed in 3.2.19 Advisory →
- Fix · GHSA-r3xc-prgr-mg9p Django (PyPI) Fixed in 4.1.9 Advisory →
- Fix · GHSA-r3xc-prgr-mg9p Django (PyPI) Fixed in 4.2.1 Advisory →
Red Hat 3 advisories
- RHSA-2023:6818 Released 2023-11-08 · Red Hat rating ImportantSatellite 6.14 security and bug fix update
- Red Hat Satellite 6.14 for RHEL 8 foreman-3.7.0.9-1.el8sat, foreman-cli-3.7.0.9-1.el8sat, foreman-debug-3.7.0.9-1.el8sat +33
- RHSA-2023:5931 Released 2023-10-19 · Red Hat rating ImportantSatellite 6.13.5 Async Security Update
- Red Hat Satellite 6.13 for RHEL 8 foreman-3.5.1.23-1.el8sat, foreman-cli-3.5.1.23-1.el8sat, foreman-debug-3.5.1.23-1.el8sat +17
- RHSA-2023:4591 Released 2023-08-09 · Red Hat rating ModerateRHUI 4.5.0 release - Security, Bug Fixes, and Enhancements
- RHUI 4 for RHEL 8 python-django-3.2.19-1.0.1.el8ui, python-sqlparse-0.4.4-1.0.1.el8ui, python39-django-3.2.19-1.0.1.el8ui +1
Vendor assessments
Red Hat
Red Hat rating: Moderate. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| RHUI 4 for RHEL 8 | Fixed | RHSA-2023:4591 |
| Red Hat Satellite 6.13 for RHEL 8 | Fixed | RHSA-2023:5931 |
| Red Hat Satellite 6.14 for RHEL 8 | Fixed | RHSA-2023:6818 |
Not affected: 10 products
- RHUI 4 for RHEL 8
- Red Hat Ansible Automation Platform 2
- Red Hat Ceph Storage 3
- Red Hat OpenStack Platform 13 (Queens)
- Red Hat OpenStack Platform 16.1
- Red Hat OpenStack Platform 16.2
- Red Hat OpenStack Platform 17.0
- Red Hat Satellite 6.13 for RHEL 8
- Red Hat Satellite 6.14 for RHEL 8
- Red Hat Storage 3
Timeline
- 2026-10-02 Threatist record created from CVE-2023-31047
- 2026-10-03 Alias added: GHSA-r3xc-prgr-mg9p
References
Advisory 5
Other 13
- https://groups.google.com/forum/#%21forum/django-announce
- https://security.netapp.com/advisory/ntap-20230609-0008/
- https://github.com/django/django/commit/21b1b1fc03e5f9e9f8c977ee6e35618dd3b353dd
- https://github.com/django/django/commit/e7c3a2ccc3a562328600be05068ed9149e12ce64
- https://github.com/django/django/commit/eed53d0011622e70b936e203005f0e6f4ac48965
- https://docs.djangoproject.com/en/4.2/releases/security
- https://github.com/django/django
- https://github.com/pypa/advisory-database/tree/main/vulns/django/PYSEC-2023-61.yaml
- https://groups.google.com/forum/#!forum/django-announce
- https://lists.fedoraproject.org/archives/list/[email protected]/message/A45VKTUVQ2BN6D5ZLZGCM774R6QGFOHW
- https://lists.fedoraproject.org/archives/list/[email protected]/message/DNEHD6N435OE2XUFGDAAVAXSYWLCUBFD
- https://security.netapp.com/advisory/ntap-20230609-0008
- https://www.djangoproject.com/weblog/2023/may/03/security-releases
Sources
- CVE-2023-31047 · CVE Program
- CVE-2023-31047 · NVD
- FIRST EPSS
- GHSA-r3xc-prgr-mg9p · GitHub Advisory Database · CC BY 4.0
- CVE-2023-31047 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences