
CVE catalog
CVE-2023-31047
python-django: CVE-2023-31047
- Severity
- Medium · CVSS 6.5
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:L - Published
- Source
- [NVD] · [CVE record]
- EPSS
- 1.39% · Oct 25, 2026
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.
Vulnerable and fixed packages
Distribution-reported package versions and fixes. These do not depend on matching against the OpenFactory package catalog.
| Distribution | Package | Release | Version | Status |
|---|---|---|---|---|
| Debian | python-django | sid | 3:5.2.18-1 | fixed |
| Debian | python-django | forky | 3:5.2.17-2 | fixed |
| Debian | python-django | trixie | 3:4.2.28-0+deb13u2 | fixed |
| Debian | python-django | trixie-security | 3:4.2.28-0+deb13u1 | fixed |
| Debian | python-django | bookworm | 3:3.2.25-0+deb12u3 | fixed |
| Debian | python-django | bookworm-security | 3:3.2.25-0+deb12u6 | fixed |
| Ubuntu | python-django | pro | 1.7.9-1ubuntu5 | vulnerable |
| Ubuntu | python-django | pro | 1.8.5-2ubuntu1 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu1 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu2 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu3 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu4 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.1 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.2 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.4 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.5 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.6 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.7 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.8 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.9 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.10 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.11 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.12 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.13 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.14 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.15 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.15+esm1 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.15+esm3 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.15+esm4 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.15+esm5 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.15+esm6 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.15+esm7 | fixed |
| Ubuntu | python-django | 18.04 | 1:1.11.4-1ubuntu1 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.6-1ubuntu1 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.9-1ubuntu1 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.1 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.2 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.3 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.4 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.5 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.6 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.7 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.8 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.9 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.10 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.11 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.12 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.13 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.14 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.15 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.16 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.17 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.18 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.19 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.20 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.21 | fixed |
| Ubuntu | python-django | 20.04 | 1:1.11.22-1ubuntu1 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.6-1ubuntu1 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.9-2ubuntu1 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.10-1 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.10-1ubuntu1 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.11-1 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.1 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.2 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.3 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.4 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.5 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.6 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.7 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.8 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.9 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.10 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.11 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.12 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.13 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.14 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.15 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.16 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.17 | fixed |
| Ubuntu | python-django | 22.04 | 2:2.2.24-1ubuntu1 | vulnerable |
| Ubuntu | python-django | 22.04 | 2:3.2.12-2 | vulnerable |
| Ubuntu | python-django | 22.04 | 2:3.2.12-2ubuntu1 | vulnerable |
| Ubuntu | python-django | 22.04 | 2:3.2.12-2ubuntu1.1 | vulnerable |
| Ubuntu | python-django | 22.04 | 2:3.2.12-2ubuntu1.2 | vulnerable |
| Ubuntu | python-django | 22.04 | 2:3.2.12-2ubuntu1.3 | vulnerable |
| Ubuntu | python-django | 22.04 | 2:3.2.12-2ubuntu1.4 | vulnerable |
| Ubuntu | python-django | 22.04 | 2:3.2.12-2ubuntu1.5 | vulnerable |
| Ubuntu | python-django | 22.04 | 2:3.2.12-2ubuntu1.6 | fixed |
| Opensuse | python-Django | tumbleweed | 4.2.1-1.1 | fixed |
| Ubuntu | python-django | pro | 1.7.9-1ubuntu5 | vulnerable |
| Ubuntu | python-django | pro | 1.8.5-2ubuntu1 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu1 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu2 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu3 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu4 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.1 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.2 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.4 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.5 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.6 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.7 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.8 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.9 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.10 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.11 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.12 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.13 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.14 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.15 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.15+esm1 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.15+esm3 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.15+esm4 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.15+esm5 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.15+esm6 | vulnerable |
| Ubuntu | python-django | pro | 1.8.7-1ubuntu5.15+esm7 | fixed |
| Ubuntu | python-django | 18.04 | 1:1.11.4-1ubuntu1 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.6-1ubuntu1 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.9-1ubuntu1 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.1 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.2 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.3 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.4 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.5 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.6 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.7 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.8 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.9 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.10 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.11 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.12 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.13 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.14 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.15 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.16 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.17 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.18 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.19 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.20 | vulnerable |
| Ubuntu | python-django | 18.04 | 1:1.11.11-1ubuntu1.21 | fixed |
| Ubuntu | python-django | 20.04 | 1:1.11.22-1ubuntu1 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.6-1ubuntu1 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.9-2ubuntu1 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.10-1 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.10-1ubuntu1 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.11-1 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.1 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.2 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.3 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.4 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.5 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.6 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.7 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.8 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.9 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.10 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.11 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.12 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.13 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.14 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.15 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.16 | vulnerable |
| Ubuntu | python-django | 20.04 | 2:2.2.12-1ubuntu0.17 | fixed |
| Ubuntu | python-django | 22.04 | 2:2.2.24-1ubuntu1 | vulnerable |
| Ubuntu | python-django | 22.04 | 2:3.2.12-2 | vulnerable |
| Ubuntu | python-django | 22.04 | 2:3.2.12-2ubuntu1 | vulnerable |
| Ubuntu | python-django | 22.04 | 2:3.2.12-2ubuntu1.1 | vulnerable |
| Ubuntu | python-django | 22.04 | 2:3.2.12-2ubuntu1.2 | vulnerable |
| Ubuntu | python-django | 22.04 | 2:3.2.12-2ubuntu1.3 | vulnerable |
| Ubuntu | python-django | 22.04 | 2:3.2.12-2ubuntu1.4 | vulnerable |
| Ubuntu | python-django | 22.04 | 2:3.2.12-2ubuntu1.5 | vulnerable |
| Ubuntu | python-django | 22.04 | 2:3.2.12-2ubuntu1.6 | fixed |
| Opensuse | python-Django | leap 15.5 | 2.0.7-150000.1.11.1 | fixed |
Fixed-version evidence
| Distribution | Package | Type | Release | Fixed version | Urgency | Origin | Bugs |
|---|---|---|---|---|---|---|---|
| Debian | python-django | source | sid | 3:3.2.19-1 | not yet assigned | Not reported | [1035467] |
| Debian | python-django | source | forky | 3:3.2.19-1 | not yet assigned | Not reported | [1035467] |
| Debian | python-django | source | trixie | 3:3.2.19-1 | not yet assigned | Not reported | [1035467] |
| Debian | python-django | source | bookworm | 3:3.2.19-1 | not yet assigned | Not reported | [1035467] |
| Ubuntu | python-django | deb | pro | 1.8.7-1ubuntu5.15+esm7 | Not reported | USN-6054-2 | Not reported |
| Ubuntu | python-django | deb | 18.04 | 1:1.11.11-1ubuntu1.21 | Not reported | USN-6054-1 | Not reported |
| Ubuntu | python-django | deb | 20.04 | 2:2.2.12-1ubuntu0.17 | Not reported | USN-6054-1 | Not reported |
| Ubuntu | python-django | deb | 22.04 | 2:3.2.12-2ubuntu1.6 | Not reported | USN-6054-1 | Not reported |
| Opensuse | python-Django | rpm | tumbleweed | 4.2.1-1.1 | Not reported | OPENSUSE-SU-2024:12943-1 | Not reported |
| Ubuntu | python-django | deb | pro | 1.8.7-1ubuntu5.15+esm7 | Not reported | UBUNTU-CVE-2023-31047 | Not reported |
| Ubuntu | python-django | deb | 18.04 | 1:1.11.11-1ubuntu1.21 | Not reported | UBUNTU-CVE-2023-31047 | Not reported |
| Ubuntu | python-django | deb | 20.04 | 2:2.2.12-1ubuntu0.17 | Not reported | UBUNTU-CVE-2023-31047 | Not reported |
| Ubuntu | python-django | deb | 22.04 | 2:3.2.12-2ubuntu1.6 | Not reported | UBUNTU-CVE-2023-31047 | Not reported |
| Opensuse | python-Django | rpm | leap 15.5 | 2.0.7-150000.1.11.1 | Not reported | SUSE-SU-2023:2839-1 | Not reported |
OpenFactory catalog packages
Matching against OpenFactory catalog package versions is in progress.
References
- [https://access.redhat.com/errata/RHSA-2023:4591]
- [https://ftp.suse.com/pub/projects/security/csaf/opensuse-su-2026_11235-1.json]
- [https://osv.dev/vulnerability/DEBIAN-CVE-2023-31047]
- [https://osv.dev/vulnerability/DLA-3415-1]
- [https://osv.dev/vulnerability/SUSE-SU-2023:2839-1]
- [https://osv.dev/vulnerability/UBUNTU-CVE-2023-31047]
- [https://osv.dev/vulnerability/USN-6054-1]
- [https://osv.dev/vulnerability/USN-6054-2]
- [https://osv.dev/vulnerability/openSUSE-SU-2024:12943-1]
- [https://security-tracker.debian.org/tracker/CVE-2023-31047]
- [https://wid.cert-bund.de/.well-known/csaf/white/2023/wid-sec-w-2023-1137.json]
[CERT-Bund public advisories] · [Debian Security Tracker] · [FIRST EPSS] · [OSV Package Vulnerability Database] · [Red Hat security advisories and VEX] · [SUSE security advisories and VEX]