CVE-2026-15337

Potential denial-of-service vulnerability in check_for_language()

State
Published
Severity
6.9 Medium
Published
Aug 4, 2026
Updated
Aug 4, 2026
Reserved
Jul 9, 2026

Read the record on cve.org

Description

An issue was discovered in Django 5.2 before 5.2.17 and 6.0 before 6.0.8. `django.utils.translation.check_for_language()` is subject to a potential denial-of-service attack when given many distinct, very long language codes, which are retained as keys in an in-memory cache and consume process memory. Such codes reach the function through the `django.views.i18n.set_language()` view, which is not routed by default. The consumed memory is bounded, since request data is limited by the `DATA_UPLOAD_MAX_MEMORY_SIZE` setting (default 2.5 MB) and the cache holds a fixed maximum number of entries. Earlier, unsupported Django series (such as 5.1.x, 5.0.x, and 4.2.x) were not evaluated and may also be affected. Django would like to thank Jaeyoung Jang for reporting this issue.

Scores

CVSSScoreVectorSource
4.06.9 MediumCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:NDSF
3.15.3 MediumCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:LDSF

Weaknesses

  • CWE-789 Memory Allocation with Excessive Size Value

Affected Products

ProductVersions
Djangodjangoproject
  • 6.0 to before 6.0.8Affected
  • 6.0.8Not affected
  • 5.2 to before 5.2.17Affected
  • 5.2.17Not affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.