CVE-2007-5712
NoneCVSS
—
EPSS
1.8%
Published
Oct 30, 2007
CISA due date
—
Cloudanix analysis
A flaw in a web application component could allow an attacker to make the service unavailable to users by sending it specially crafted web traffic.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- Web Framework
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
A remote, unauthenticated attacker can cause a denial of service condition. The vulnerability exists in the internationalization (i18n) framework, which, when enabled, improperly handles HTTP requests containing excessively large 'Accept-Language' headers. Processing these headers leads to uncontrolled memory allocation, which can be exploited by sending numerous malicious requests to exhaust server memory, rendering the application unresponsive or causing it to crash.
Why it matters to the business
An attacker can make the web application or service unavailable to legitimate users, leading to operational downtime, potential revenue loss, and a negative impact on customer trust. Since the vulnerability can be triggered remotely without authentication, any internet-facing application with the affected component enabled is at risk of a denial-of-service attack.
How an attack unfolds
An unauthenticated attacker identifies a target web application running a vulnerable version of Django with its internationalization (USE_I18N) feature enabled. The attacker then crafts and sends a series of HTTP requests, each containing an abnormally large 'Accept-Language' header. The server's i18n component attempts to parse these large headers, consuming a significant amount of memory for each request. By repeating this process, the attacker progressively exhausts the server's memory resources, leading to a denial of service where the application becomes slow, unresponsive, or crashes entirely, preventing access for legitimate users.
How to fix it
The primary remediation is to upgrade the affected software and its dependencies to a patched version. For example, if using 'scorecard', upgrade to version 4.13.1-r1 or later. As a temporary mitigation if patching is not immediately possible, you can disable the internationalization framework by setting 'USE_I18N = False' in the application's settings. Additionally, a web application firewall (WAF) or reverse proxy can be configured to limit the maximum size of incoming HTTP headers, specifically the 'Accept-Language' header, to prevent the exploit.
How to confirm the fix worked
To validate the fix, first confirm that the affected components have been upgraded to a patched version by checking the package manager or software bill of materials (SBOM). If mitigation was applied, inspect the application's configuration to ensure the 'USE_I18N' setting is disabled. To test the vulnerability, you can use a web proxy or a command-line tool like 'curl' to send a request with an oversized 'Accept-Language' header to the application and monitor the server's memory usage. A patched or properly mitigated system should handle or reject the request gracefully without significant memory consumption.
Typical attack path
- The attacker identifies a publicly accessible web application built on a vulnerable version of Django.
- The attacker confirms the application has the internationalization (i18n) feature enabled.
- The attacker crafts an HTTP request with an excessively large 'Accept-Language' header.
- The attacker sends a high volume of these malicious requests to the target server.
- The server's memory is consumed while processing the headers, leading to resource exhaustion and a denial-of-service condition.
How to detect it
To detect potential past or ongoing exploitation, security teams should analyze web server access logs (e.g., Apache, Nginx). Look for an unusual volume of requests, particularly from a small set of source IP addresses, that contain an 'Accept-Language' header with an abnormally large value or size. Correlate these findings with server performance metrics, specifically looking for periods of high memory utilization, slowdowns, or crashes that coincide with the suspicious log entries. System logs (/var/log/messages, dmesg, Windows Event Logs) may also contain entries related to memory exhaustion or process termination (e.g., OOM killer on Linux).
What your security team should do
- Identify all applications using vulnerable versions of Django or dependent packages and prioritize patching for internet-facing systems.
- Upgrade affected components to the latest secure versions, such as 'scorecard' version 4.13.1-r1 or newer.
- If patching is delayed, apply mitigations by either disabling the 'USE_I18N' setting or implementing WAF rules to restrict the size of the 'Accept-Language' header.
- Configure monitoring and alerting for unusual spikes in server memory consumption correlated with web traffic.
The record
The internationalization (i18n) framework in Django 0.91, 0.95, 0.95.1, and 0.96, and as used in other products such as PyLucid, when the USE_I18N option and the i18n component are enabled, allows remote attackers to cause a denial of service (memory consumption) via many HTTP requests with large Accept-Language headers.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| PyPI | django | 0 | 1.1 |
| PyPI | django | 0.91.0 | 0.91.1 |
| PyPI | django | 0.95 | 0.95.2 |
| PyPI | django | 0.96.0 | 0.96.1 |
| Debian:10 | python-django | 0 | 0.96-1.1 |
| Debian:11 | python-django | 0 | 0.96-1.1 |
| Debian:12 | python-django | 0 | 0.96-1.1 |
| Debian:13 | python-django | 0 | 0.96-1.1 |
| Debian:4.0 | python-django | 0 | 0.95.1-1etch2 |
| pypi | Django | 0.91.0 | No fix |
| pypi | Django | 0.95 | No fix |
| pypi | Django | 0.96.0 | No fix |
Related vulnerabilities
- GHSA-8p8v-wh79-9r56 Django vulnerable to Uncontrolled Resource Consumption Also affects django
- GHSA-mjgh-79qc-68w3 Django has a Race Condition vulnerability Also affects django
- CVE-2026-25673 An issue was discovered in 6.0 before 6.0.3, 5.2 before 5.2.12, and 4.2 before 4.2.29. Also affects django
- CVE-2026-25674 An issue was discovered in 6.0 before 6.0.3, 5.2 before 5.2.12, and 4.2 before 4.2.29. Also affects django
- GHSA-6426-9fv3-65x8 Django has an SQL Injection issue Also affects django
- GHSA-gvg8-93h5-g6qq Django has an SQL Injection issue Also affects django
- GHSA-2mcm-79hx-8fxw Django has Observable Timing Discrepancy Also affects django
- GHSA-33mw-q7rj-mjwj Django has Inefficient Algorithmic Complexity Also affects django