{"document":{"aggregate_severity":{"namespace":"https://www.suse.com/support/security/rating/","text":"moderate"},"category":"csaf_vex","csaf_version":"2.0","distribution":{"text":"Copyright 2024 SUSE LLC. All rights reserved.","tlp":{"label":"WHITE","url":"https://www.first.org/tlp/"}},"lang":"en","notes":[{"category":"summary","text":"SUSE CVE-2023-31047","title":"Title"},{"category":"description","text":"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.","title":"Description of the CVE"},{"category":"legal_disclaimer","text":"CSAF 2.0 data is provided by SUSE under the Creative Commons License 4.0 with Attribution (CC-BY-4.0).","title":"Terms of use"}],"publisher":{"category":"vendor","contact_details":"https://www.suse.com/support/security/contact/","name":"SUSE Product Security Team","namespace":"https://www.suse.com/"},"references":[{"category":"external","summary":"CVE-2023-31047","url":"https://www.suse.com/security/cve/CVE-2023-31047"},{"category":"external","summary":"SUSE Security Ratings","url":"https://www.suse.com/support/security/rating/"},{"category":"external","summary":"SUSE Bug 1210866 for CVE-2023-31047","url":"https://bugzilla.suse.com/1210866"},{"category":"external","summary":"Advisory link for SUSE-SU-2023:2839-1","url":"https://lists.suse.com/pipermail/sle-security-updates/2023-July/015497.html"}],"title":"SUSE CVE CVE-2023-31047","tracking":{"current_release_date":"2026-01-04T00:34:24Z","generator":{"date":"2023-05-20T02:16:23Z","engine":{"name":"cve-database.git:bin/generate-csaf-vex.pl","version":"1"}},"id":"CVE-2023-31047","initial_release_date":"2023-05-20T02:16:23Z","revision_history":[{"date":"2023-05-20T02:16:23Z","number":"2","summary":"Current version"},{"date":"2023-07-15T02:18:01Z","number":"3","summary":"Current version"},{"date":"2024-07-20T03:09:58Z","number":"4","summary":"Current version"},{"date":"2025-01-01T02:07:25Z","number":"5","summary":"Current version"},{"date":"2025-01-31T08:00:05Z","number":"6","summary":"Current version"},{"date":"2025-02-14T06:28:35Z","number":"7","summary":"Current version"},{"date":"2025-02-16T06:21:33Z","number":"8","summary":"Current version"},{"date":"2025-03-15T06:20:47Z","number":"9","summary":"Current version"},{"date":"2025-04-25T02:36:12Z","number":"10","summary":"Current version"},{"date":"2025-05-01T05:56:57Z","number":"11","summary":"Current version"},{"date":"2025-10-07T01:08:39Z","number":"12","summary":"Current version"},{"date":"2026-01-04T00:34:24Z","number":"13","summary":"more updates released"}],"status":"interim","version":"13"}},"product_tree":{"branches":[{"branches":[{"branches":[{"category":"product_name","name":"openSUSE Leap 15.5","product":{"name":"openSUSE Leap 15.5","product_id":"openSUSE Leap 15.5","product_identification_helper":{"cpe":"cpe:/o:opensuse:leap:15.5"}}},{"category":"product_name","name":"openSUSE Tumbleweed","product":{"name":"openSUSE Tumbleweed","product_id":"openSUSE Tumbleweed","product_identification_helper":{"cpe":"cpe:/o:opensuse:tumbleweed"}}},{"category":"product_version","name":"python3-Django-2.0.7-150000.1.11.1","product":{"name":"python3-Django-2.0.7-150000.1.11.1","product_id":"python3-Django-2.0.7-150000.1.11.1","product_identification_helper":{"cpe":"cpe:2.3:a:djangoproject:django:2.0.7:*:*:*:*:*:*:*","purl":"pkg:rpm/suse/python3-Django@2.0.7-150000.1.11.1?upstream=python-Django-2.0.7-150000.1.11.1.src.rpm"}}},{"category":"product_version","name":"python310-Django-4.2.1-1.1","product":{"name":"python310-Django-4.2.1-1.1","product_id":"python310-Django-4.2.1-1.1","product_identification_helper":{"cpe":"cpe:2.3:a:djangoproject:django:4.2.1:*:*:*:*:*:*:*","purl":"pkg:rpm/suse/python310-Django@4.2.1-1.1"}}},{"category":"product_version","name":"python310-Django4-4.2.14-1.1","product":{"name":"python310-Django4-4.2.14-1.1","product_id":"python310-Django4-4.2.14-1.1","product_identification_helper":{"purl":"pkg:rpm/suse/python310-Django4@4.2.14-1.1"}}},{"category":"product_version","name":"python311-Django-4.2.1-1.1","product":{"name":"python311-Django-4.2.1-1.1","product_id":"python311-Django-4.2.1-1.1","product_identification_helper":{"cpe":"cpe:2.3:a:djangoproject:django:4.2.1:*:*:*:*:*:*:*","purl":"pkg:rpm/suse/python311-Django@4.2.1-1.1?upstream=python-Django-4.2.1-1.1.src.rpm"}}},{"category":"product_version","name":"python311-Django4-4.2.14-1.1","product":{"name":"python311-Django4-4.2.14-1.1","product_id":"python311-Django4-4.2.14-1.1","product_identification_helper":{"cpe":"cpe:2.3:a:djangoproject:django:4.2.14:*:*:*:*:*:*:*","purl":"pkg:rpm/suse/python311-Django4@4.2.14-1.1"}}},{"category":"product_version","name":"python312-Django4-4.2.14-1.1","product":{"name":"python312-Django4-4.2.14-1.1","product_id":"python312-Django4-4.2.14-1.1","product_identification_helper":{"cpe":"cpe:2.3:a:djangoproject:django:4.2.14:*:*:*:*:*:*:*","purl":"pkg:rpm/suse/python312-Django4@4.2.14-1.1"}}},{"category":"product_version","name":"python312-Django6-6.0-1.1","product":{"name":"python312-Django6-6.0-1.1","product_id":"python312-Django6-6.0-1.1","product_identification_helper":{"purl":"pkg:rpm/suse/python312-Django6@6.0-1.1"}}},{"category":"product_version","name":"python313-Django6-6.0-1.1","product":{"name":"python313-Django6-6.0-1.1","product_id":"python313-Django6-6.0-1.1","product_identification_helper":{"purl":"pkg:rpm/suse/python313-Django6@6.0-1.1"}}},{"category":"product_version","name":"python39-Django-4.2.1-1.1","product":{"name":"python39-Django-4.2.1-1.1","product_id":"python39-Django-4.2.1-1.1","product_identification_helper":{"cpe":"cpe:2.3:a:djangoproject:django:4.2.1:*:*:*:*:*:*:*","purl":"pkg:rpm/suse/python39-Django@4.2.1-1.1"}}}],"category":"product_family","name":"SUSE Linux Enterprise"}],"category":"vendor","name":"SUSE"}],"relationships":[{"category":"default_component_of","full_product_name":{"name":"python3-Django-2.0.7-150000.1.11.1 as component of openSUSE Leap 15.5","product_id":"openSUSE Leap 15.5:python3-Django-2.0.7-150000.1.11.1"},"product_reference":"python3-Django-2.0.7-150000.1.11.1","relates_to_product_reference":"openSUSE Leap 15.5"},{"category":"default_component_of","full_product_name":{"name":"python310-Django-4.2.1-1.1 as component of openSUSE Tumbleweed","product_id":"openSUSE Tumbleweed:python310-Django-4.2.1-1.1"},"product_reference":"python310-Django-4.2.1-1.1","relates_to_product_reference":"openSUSE Tumbleweed"},{"category":"default_component_of","full_product_name":{"name":"python310-Django4-4.2.14-1.1 as component of openSUSE Tumbleweed","product_id":"openSUSE Tumbleweed:python310-Django4-4.2.14-1.1"},"product_reference":"python310-Django4-4.2.14-1.1","relates_to_product_reference":"openSUSE Tumbleweed"},{"category":"default_component_of","full_product_name":{"name":"python311-Django-4.2.1-1.1 as component of openSUSE Tumbleweed","product_id":"openSUSE Tumbleweed:python311-Django-4.2.1-1.1"},"product_reference":"python311-Django-4.2.1-1.1","relates_to_product_reference":"openSUSE Tumbleweed"},{"category":"default_component_of","full_product_name":{"name":"python311-Django4-4.2.14-1.1 as component of openSUSE Tumbleweed","product_id":"openSUSE Tumbleweed:python311-Django4-4.2.14-1.1"},"product_reference":"python311-Django4-4.2.14-1.1","relates_to_product_reference":"openSUSE Tumbleweed"},{"category":"default_component_of","full_product_name":{"name":"python312-Django4-4.2.14-1.1 as component of openSUSE Tumbleweed","product_id":"openSUSE Tumbleweed:python312-Django4-4.2.14-1.1"},"product_reference":"python312-Django4-4.2.14-1.1","relates_to_product_reference":"openSUSE Tumbleweed"},{"category":"default_component_of","full_product_name":{"name":"python312-Django6-6.0-1.1 as component of openSUSE Tumbleweed","product_id":"openSUSE Tumbleweed:python312-Django6-6.0-1.1"},"product_reference":"python312-Django6-6.0-1.1","relates_to_product_reference":"openSUSE Tumbleweed"},{"category":"default_component_of","full_product_name":{"name":"python313-Django6-6.0-1.1 as component of openSUSE Tumbleweed","product_id":"openSUSE Tumbleweed:python313-Django6-6.0-1.1"},"product_reference":"python313-Django6-6.0-1.1","relates_to_product_reference":"openSUSE Tumbleweed"},{"category":"default_component_of","full_product_name":{"name":"python39-Django-4.2.1-1.1 as component of openSUSE Tumbleweed","product_id":"openSUSE Tumbleweed:python39-Django-4.2.1-1.1"},"product_reference":"python39-Django-4.2.1-1.1","relates_to_product_reference":"openSUSE Tumbleweed"},{"category":"default_component_of","full_product_name":{"name":"python-Django as component of HPE Helion OpenStack 8","product_id":"HPE Helion OpenStack 8:python-Django"},"product_reference":"python-Django","relates_to_product_reference":"HPE Helion OpenStack 8"},{"category":"default_component_of","full_product_name":{"name":"python-Django as component of SUSE OpenStack Cloud 8","product_id":"SUSE OpenStack Cloud 8:python-Django"},"product_reference":"python-Django","relates_to_product_reference":"SUSE OpenStack Cloud 8"},{"category":"default_component_of","full_product_name":{"name":"python-Django1 as component of SUSE OpenStack Cloud 9","product_id":"SUSE OpenStack Cloud 9:python-Django1"},"product_reference":"python-Django1","relates_to_product_reference":"SUSE OpenStack Cloud 9"},{"category":"default_component_of","full_product_name":{"name":"python-Django as component of SUSE OpenStack Cloud Crowbar 8","product_id":"SUSE OpenStack Cloud Crowbar 8:python-Django"},"product_reference":"python-Django","relates_to_product_reference":"SUSE OpenStack Cloud Crowbar 8"},{"category":"default_component_of","full_product_name":{"name":"python-Django1 as component of SUSE OpenStack Cloud Crowbar 9","product_id":"SUSE OpenStack Cloud Crowbar 9:python-Django1"},"product_reference":"python-Django1","relates_to_product_reference":"SUSE OpenStack Cloud Crowbar 9"}]},"vulnerabilities":[{"cve":"CVE-2023-31047","ids":[{"system_name":"SUSE CVE Page","text":"https://www.suse.com/security/cve/CVE-2023-31047"}],"notes":[{"category":"general","text":"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.","title":"CVE description"}],"product_status":{"recommended":["SUSE Linux Enterprise Module for Open Buildservice Development Tools 15 SP6:python3-Django-2.0.7-150000.1.11.1","SUSE Linux Enterprise Module for Open Buildservice Development Tools 15 SP7:python3-Django-2.0.7-150000.1.11.1","openSUSE Leap 15.5:python3-Django-2.0.7-150000.1.11.1","openSUSE Tumbleweed:python310-Django-4.2.1-1.1","openSUSE Tumbleweed:python310-Django4-4.2.14-1.1","openSUSE Tumbleweed:python311-Django-4.2.1-1.1","openSUSE Tumbleweed:python311-Django4-4.2.14-1.1","openSUSE Tumbleweed:python312-Django4-4.2.14-1.1","openSUSE Tumbleweed:python312-Django6-6.0-1.1","openSUSE Tumbleweed:python313-Django6-6.0-1.1","openSUSE Tumbleweed:python39-Django-4.2.1-1.1"]},"references":[{"category":"external","summary":"CVE-2023-31047","url":"https://www.suse.com/security/cve/CVE-2023-31047"},{"category":"external","summary":"SUSE Security Ratings","url":"https://www.suse.com/support/security/rating/"},{"category":"external","summary":"SUSE Bug 1210866 for CVE-2023-31047","url":"https://bugzilla.suse.com/1210866"},{"category":"external","summary":"Advisory link for SUSE-SU-2023:2839-1","url":"https://lists.suse.com/pipermail/sle-security-updates/2023-July/015497.html"}],"remediations":[{"category":"vendor_fix","details":"To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n","product_ids":["SUSE Linux Enterprise Module for Open Buildservice Development Tools 15 SP6:python3-Django-2.0.7-150000.1.11.1","SUSE Linux Enterprise Module for Open Buildservice Development Tools 15 SP7:python3-Django-2.0.7-150000.1.11.1","openSUSE Leap 15.5:python3-Django-2.0.7-150000.1.11.1","openSUSE Tumbleweed:python310-Django-4.2.1-1.1","openSUSE Tumbleweed:python310-Django4-4.2.14-1.1","openSUSE Tumbleweed:python311-Django-4.2.1-1.1","openSUSE Tumbleweed:python311-Django4-4.2.14-1.1","openSUSE Tumbleweed:python312-Django4-4.2.14-1.1","openSUSE Tumbleweed:python312-Django6-6.0-1.1","openSUSE Tumbleweed:python313-Django6-6.0-1.1","openSUSE Tumbleweed:python39-Django-4.2.1-1.1"]},{"category":"no_fix_planned","details":"There is no fix planned for these products.\n","product_ids":["HPE Helion OpenStack 8:python-Django","SUSE OpenStack Cloud 8:python-Django","SUSE OpenStack Cloud 9:python-Django1","SUSE OpenStack Cloud Crowbar 8:python-Django","SUSE OpenStack Cloud Crowbar 9:python-Django1"]}],"scores":[{"cvss_v3":{"baseScore":5.6,"baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L","version":"3.1"},"products":["SUSE Linux Enterprise Module for Open Buildservice Development Tools 15 SP6:python3-Django-2.0.7-150000.1.11.1","SUSE Linux Enterprise Module for Open Buildservice Development Tools 15 SP7:python3-Django-2.0.7-150000.1.11.1","openSUSE Leap 15.5:python3-Django-2.0.7-150000.1.11.1","openSUSE Tumbleweed:python310-Django-4.2.1-1.1","openSUSE Tumbleweed:python310-Django4-4.2.14-1.1","openSUSE Tumbleweed:python311-Django-4.2.1-1.1","openSUSE Tumbleweed:python311-Django4-4.2.14-1.1","openSUSE Tumbleweed:python312-Django4-4.2.14-1.1","openSUSE Tumbleweed:python312-Django6-6.0-1.1","openSUSE Tumbleweed:python313-Django6-6.0-1.1","openSUSE Tumbleweed:python39-Django-4.2.1-1.1"]}],"threats":[{"category":"impact","date":"2023-04-26T09:00:13Z","details":"moderate"}],"title":"CVE-2023-31047"}]}