Patchfirst
CVE-2023-24580 High · 7.5 EPSS 62.6%

An issue was discovered in the Multipart Request Parser in Django 3.2 before 3.2.18, 4.0 before 4.0.10, and 4.1 before…

Summary

The flaw is in the Multipart Request Parser component of Django, affecting versions 3.2 before 3.2.18, 4.0 before 4.0.10, and 4.1 before 4.1.7. Because it does not adequately limit resource consumption, certain inputs such as an excessive number of parts in a multipart form can exhaust open files or memory, and an attacker can use this to cause denial of service without authentication, user interaction, or special configuration, over the network.

Official description · CVE.org

An issue was discovered in the Multipart Request Parser in Django 3.2 before 3.2.18, 4.0 before 4.0.10, and 4.1 before 4.1.7. Passing certain inputs (e.g., an excessive number of parts) to multipart forms could result in too many open files or memory exhaustion, and provided a potential vector for a denial-of-service attack.

Breakdown
25.8 / 100
Exploited
Not confirmed
Reports
0
Tactics
0/15

Disclosed on 15 Feb 2023. No public exploit code or confirmed exploitation is recorded.

See the family tree

A fix was bypassed or incomplete 2 times over 6 years. The latest fix listed for Django is 4.2.5.

Same bug familyLinked by evidence that a fix failed or the same code was patched again. Oldest first.

  1. CVE-2018-7537An issue was discovered in Django 2.0 before 2.0.3, 1.11 before…9 Mar 2018
  2. same family
    CVE-2019-14232An issue was discovered in Django 1.11.x before 1.11.23, 2.1.x…2 Aug 2019
  3. same family
    CVE-2020-24583An issue was discovered in Django 2.2 before 2.2.16, 3.0 before…1 Sep 2020
  4. relatedMedium

    Why these are linked:

    CVE-2021-31542In Django 2.2 before 2.2.21, 3.1 before 3.1.9, and 3.2 before…5 May 2021
  5. relatedMedium

    Why these are linked:

    CVE-2022-23833An issue was discovered in MultiPartParser in Django 2.2 before…3 Feb 2022
  6. relatedMedium

    Why these are linked:

    This CVECVE-2023-24580An issue was discovered in the Multipart Request Parser in…15 Feb 2023
  7. same family
    CVE-2023-43665In Django 3.2 before 3.2.22, 4.1 before 4.1.12, and 4.2 before…3 Nov 2023
  8. incomplete fixHigh

    Why these are linked:

    • Stated in the CVE textNOTE: this issue exists because of an incomplete fix for CVE-2019-14232 and CVE-2023-43665.
    • Same code patched: text.py (machine-matched)commit be9c27ccommit c7b7024commit 3394fc6commit 3c9a277
    • Similar weakness in the same product (machine-matched)same package + description similarity
    CVE-2024-27351In Django 3.2 before 3.2.25, 4.2 before 4.2.11, and 5.0 before…15 Mar 2024

Fixes in DjangoPyPI package, by fixed version. Earlier and later fixes in the same package, not necessarily the same bug.

  1. 4.0.7CVE-2022-363593 Aug 2022
  2. 4.1.2CVE-2022-4132316 Oct 2022
  3. 4.1.6CVE-2023-239691 Feb 2023
  4. 4.1.7CVE-2023-2458015 Feb 2023
  5. 4.2.1CVE-2023-310477 May 2023
  6. 4.2.3CVE-2023-360533 Jul 2023
  7. 4.2.5CVE-2023-411643 Nov 2023Latest listed

techniques

No techniques linked

No ATT&CK techniques are linked to this CVE yet. MITRE CTID has not mapped it, and no report passage in the corpus ties it to a technique.

Am I affected? What do I upgrade to?

From GitHub Security Advisories and OSV

1 package in 1 ecosystem. Main package: Django.

Upgrade to 4.1.7 or later

pippip install "Django>=4.1.7"

The first fix for CVE-2023-24580.

Affected versions, by release line

If you runUpgrade to
4.1 up to 4.1.74.1.7
4.1a1 up to 4.1.74.1.7
4.0 up to 4.0.104.0.10
4.0a1 up to 4.0.104.0.10
3.2 up to 3.2.183.2.18
3.2a1 up to 3.2.183.2.18

“Up to” means the second version is the fix and is not affected.

Check your lockfile against all CVEs

What security researchers reported

Not named in any threat report yet

Also mentioned in 1 community threat pulse (AlienVault OTX)

Weaker evidence

Pulses are indicator collections that anyone can publish. A mention is not confirmation of exploitation.

References

11 links, grouped by NVD tag
↑ ↓ chooseEnter openEsc close