GHSA-2f9m-qhxg-w5v5
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify site with set_language view enabled
-
DeliverySend POST requests with many distinct oversized language codes
-
ExploitPopulate in-memory cache with large string keys
-
ExecutionConsume process memory incrementally
-
ImpactDegrade worker availability
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Memory allocation limits
|
| Exploitation Conditions | Exploitation requires that |
| Impact | No CVSS vector or EPSS score is provided in the available data; all metric assessments below are independently inferred. The Django security team rates this 'low' severity - the lowest tier in their policy - primarily because natural system bounds limit exploitation: per-request POST body size is capped by |
| Exploit ScenarioDerived | An attacker discovers a Django application with the |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 04, 2026
Memory exhaustion in Django's check_for_language() function allows denial-of-service via the set_language view when it is explicitly enabled in URL configuration. Attackers can submit many distinct, very long language codes via POST requests, causing each code to be cached as an in-memory key and progressively consuming process memory. Django rates this severity 'low' because built-in guards - DATA_UPLOAD_MAX_MEMORY_SIZE and the cache's maximum entry count - bound the total exploitable memory; no public exploit identified at time of analysis.
RemediationAI
Upgrade to Django 5.2.17 or Django 6.0.8, both released August 4, 2026, available at https://www.djangoproject.com/download/. These releases enforce a 500-character maximum on language codes before any cache interaction, fully mitigating the vulnerability. As an immediate compensating control for environments that cannot upgrade promptly, remove django.views.i18n.set_language from the URL configuration - since this view is not active by default, its removal has no impact on sites that do not use language-switching functionality. If the view must remain active, deploying rate-limiting at the reverse proxy or WAF layer on POST requests to the set_language endpoint reduces the volume of cache-polluting requests; note that rate-limiting by IP may not prevent distributed sources. Patches are also applied to the main and 6.1 branches per the advisory.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The vulnerability is in django.utils.translation.check_for_language(), which stores per-language-code results in an in-memory cache keyed by the raw language code string. Without a length check, arbitrarily long strings became cache keys, and submitting many distinct oversized strings caused unconstrained key accumulation in process memory. The attack surface is django.views.i18n.set_language, which accepts a POST language parameter and forwards it directly to check_for_language(). No CWE or CPE identifiers were supplied by the vendor or NVD, but the root cause is an input validation gap (missing length constraint) at the boundary between user-supplied POST data and an in-memory caching operation - analogous to CWE-400 (Uncontrolled Resource Consumption). The fix enforces a 500-character maximum on language codes before the cached lookup.
Know when Django gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Non-default view must be explicitly enabled (AC:H); no authentication or interaction needed if exposed; only bounded availability impact.
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Primary rating from Vendor (CNA).
CVSS VectorVendor
Lifecycle Timeline
2Description PRE-NVD
Executive ViewAI
Django applications with the set_language view explicitly enabled face a potential denial-of-service vulnerability that can exhaust application process memory, risking service degradation or outages. While no public exploit has been identified at time of analysis, the criticality rating warrants prompt mitigation for any organizations with this view actively configured.
No vendor-released patch identified at time of analysis. Interim mitigations: disable set_language view if not operationally required; implement request rate limiting on language-selection endpoints; reduce DATA_UPLOAD_MAX_MEMORY_SIZE and cache entry-count limits to constrain exploitable memory; deploy web application firewall rules to block requests with abnormally long language code parameters; establish monitoring and alerting on memory consumption anomalies.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
The package python/cpython from 0 and before 3.6.13, from 3.7.0 and before 3.7.10, from 3.8.0 and before 3.8.8, from 3.9
In Django 1.10.x before 1.10.8 and 1.11.x before 1.11.5, HTML autoescaping was disabled in a portion of the template for
An issue was discovered in Django 3.2 before 3.2.14 and 4.0 before 4.0.6. Rated critical severity (CVSS 9.8), this vulne
Django 3.1.x before 3.1.13 and 3.2.x before 3.2.5 allows QuerySet.order_by SQL injection if order_by is untrusted input
Django before 1.11.27, 2.x before 2.2.9, and 3.x before 3.0.1 allows account takeover. Rated critical severity (CVSS 9.8
An authentication/authorization bypass in the djust Python live-view framework (versions prior to 1.0.7) lets unauthenti
Unauthenticated arbitrary Python module import in djust before 1.0.7 lets any client that can reach the WebSocket or SSE
Django 1.11 before 1.11.29, 2.2 before 2.2.11, and 3.0 before 3.0.4 allows SQL Injection if untrusted data is used as a
Cross-site scripting (XSS) vulnerability in the dismissChangeRelatedObjectPopup function in contrib/admin/static/admin/j
Forged content modification in django-page-cms through 2.0.13 lets unauthenticated remote attackers exploit five CSRF-ex
Cross-site request forgery in djust's Server-Sent-Events transport affects all versions prior to 1.0.7 and allows a cros
Unauthenticated remote attackers can read live Django view and session state and invoke server-side handlers through dju
Same technique Information Disclosure
View allVendor StatusVendor
SUSE
Severity: Important| Product | Status |
|---|---|
| SUSE Linux Enterprise Module for Package Hub 15 SP7 | Fixed |
| openSUSE Leap 16.0 | Fixed |
| openSUSE Tumbleweed | Fixed |
| SUSE Linux Enterprise Module for Package Hub 15 SP7 | Affected |
| SUSE Linux Enterprise Module for Package Hub 15 SP6 | Affected |
| openSUSE Leap 15.6 | Affected |
EUVD-2026-52748
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB