CVE-2023-23969
Published: 01 February 2023
Summary
CVE-2023-23969 is a high-severity Allocation of Resources Without Limits or Throttling (CWE-770) vulnerability in Djangoproject Django. Its CVSS base score is 7.5 (High).
Operationally, ranked in the top 10.0% of CVEs by exploit likelihood; it is not currently listed in the CISA KEV catalog.
Deeper analysis
The vulnerability CVE-2023-23969 is an allocation flaw (CWE-770) in Django versions 3.2 before 3.2.17, 4.0 before 4.0.9, and 4.1 before 4.1.6. It arises because the framework caches parsed Accept-Language header values to avoid repeated parsing; an excessively large raw header value therefore causes unbounded memory growth.
An unauthenticated remote attacker can trigger the flaw simply by sending HTTP requests containing a very large Accept-Language header. Successful exploitation produces high memory consumption on the server and can result in a denial of service, consistent with the CVSS 7.5 rating that emphasizes availability impact without any authentication or user interaction requirements.
Django security advisories and downstream distributions (Debian LTS, Fedora) direct users to upgrade immediately to 3.2.17, 4.0.9, or 4.1.6; the fixes are documented in the Django 4.1 release notes and corresponding package announcements. The EPSS score has remained low, with only a modest increase from 0.0508 to a peak of 0.0609.
EU & UK References
- 🇪🇺 ENISA EUVD: EUVD-2023-0066
Vulnerability details
In Django 3.2 before 3.2.17, 4.0 before 4.0.9, and 4.1 before 4.1.6, the parsed values of Accept-Language headers are cached in order to avoid repetitive parsing. This leads to a potential denial-of-service vector via excessive memory usage if the raw…
more
value of Accept-Language headers is very large.
- CWE(s)
Related Threats
No named actor attribution yet. ATT&CK technique mapping in progress for this CVE.
Affected Assets
Mitigating Controls
Likely Mitigating Controls AI
Per-CVE control mapping for this CVE has not run yet; the list below is derived from the weakness types (CWEs) cited in the NVD entry.
This control implements explicit throttling on session allocation, addressing the weakness of allocating resources without limits.
Plan testing exercises resource allocation limits and throttling during simulated failures, directly addressing weaknesses that allow unbounded resource use.
Contingency plan updates ensure recovery strategies address unbounded resource allocation, making it harder for attackers to exploit lack of throttling to cause prolonged outages.
Provides continuity when unbounded resource allocation at the primary site leads to exhaustion and downtime.
Alternate services allow operations to continue when primary allocation of resources lacks limits or throttling.
Explicit planning of security-related actions requires defining limits, windows, and resource allocations, making allocation without throttling far less likely.
Measures of performance include tracking allocation behavior and throttling effectiveness, reducing the window for resource exhaustion attacks.
Imposes an inactivity-based limit on network resource allocation, throttling the number of concurrently held connections.