CVE-2024-56374
NoneCVSS
—
EPSS
1.3%
Published
Jan 14, 2025
CISA due date
—
Cloudanix analysis
A flaw in popular web software lets attackers send bad network address data that can slow down or crash servers handling online forms.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Web Framework
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Unbounded string length in private IPv6 validation functions (clean_ipv6_address, is_valid_ipv6_address) and django.forms.GenericIPAddressField permits excessive memory or CPU consumption during address parsing with no upper bound enforced.
Why it matters to the business
Attackers can remotely crash or degrade web application availability by sending crafted IPv6 strings through forms, increasing operational downtime risk for any Django deployment using the affected form field; stable low EPSS and absence from KEV indicate limited active exploitation but widespread package exposure still requires prompt patching.
How an attack unfolds
An attacker submits an excessively long or malformed IPv6 address string through any Django form that uses GenericIPAddressField; the validation routine processes the entire input without length limits, triggering high resource usage that can exhaust server capacity and cause denial of service.
How to fix it
Upgrade Django to 5.1.5, 5.0.11 or 4.2.18 or later; apply the exact fixed commits referenced for django/django; for Ubuntu packages listed, install the corresponding kernel or library updates that include the patched Django versions.
How to confirm the fix worked
Confirm Django version is at or above 5.1.5 / 5.0.11 / 4.2.18; test form submissions with long IPv6 strings to verify they are now rejected or truncated before resource exhaustion occurs; review changelog entries for the private IPv6 functions.
Typical attack path
- Identify a Django application endpoint accepting user input via a form containing GenericIPAddressField
- Craft and submit an IPv6 address string exceeding normal length bounds or containing repeated segments
- Trigger the vulnerable clean_ipv6_address or is_valid_ipv6_address logic during form validation
- Observe server resource exhaustion leading to slowed responses or crashes
How to detect it
Review web server and application logs for unusually long IPv6 strings submitted to form endpoints; look for spikes in CPU or memory usage coinciding with GenericIPAddressField validation calls; no specific threat actor campaigns or ransomware usage reported for this issue.
What your security team should do
- Immediately inventory all Django installations and prioritize upgrade to the fixed releases 5.1.5, 5.0.11 or 4.2.18
- Scan code for usage of django.forms.GenericIPAddressField and apply input length limits as a temporary control
- Monitor EPSS trend and CISA KEV for any future elevation in exploit activity
The record
An issue was discovered in Django 5.1 before 5.1.5, 5.0 before 5.0.11, and 4.2 before 4.2.18. Lack of upper-bound limit enforcement in strings passed when performing IPv6 validation could lead to a potential denial-of-service attack. The undocumented and private functions clean_ipv6_address and is_valid_ipv6_address are vulnerable, as is the django.forms.GenericIPAddressField form field. (The django.db.models.GenericIPAddressField model field is not affected.)
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| PyPI | django | 4.2 | 4.2.18 |
| PyPI | django | 5.0 | 5.0.11 |
| PyPI | django | 5.1 | 5.1.5 |
| Bitnami | django | 4.2.0 | 5.1.5 |
| Chainguard | awx | 0 | 24.6.1-r3 |
| Chainguard | py3-django | 0 | 5.1.5-r0 |
| Chainguard | py3-supported-django | 0 | 5.1.5-r0 |
| Chainguard | py3.10-django | 0 | 5.1.5-r0 |
| Chainguard | py3.10-django-bin | 0 | 5.1.5-r0 |
| Chainguard | py3.11-django | 0 | 5.1.5-r0 |
| Chainguard | py3.11-django-bin | 0 | 5.1.5-r0 |
| Chainguard | py3.12-django | 0 | 5.1.5-r0 |
| Chainguard | py3.12-django-bin | 0 | 5.1.5-r0 |
| Chainguard | py3.13-django | 0 | 5.1.5-r0 |
| Chainguard | py3.13-django-bin | 0 | 5.1.5-r0 |
| Debian:11 | python-django | 0 | No fix |
| Debian:11 | python-django | 0 | 2:2.2.28-1~deb11u5 |
| Debian:12 | python-django | 0 | No fix |
| Debian:13 | python-django | 0 | No fix |
| Mageia:9 | python-django | 0 | 4.1.13-1.2.mga9 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP6 | python-Django | 0 | 4.2.11-150600.3.15.1 |
| Ubuntu:20.04:LTS | python-django | 0 | 2:2.2.12-1ubuntu0.27 |
| Ubuntu:22.04:LTS | python-django | 0 | 2:3.2.12-2ubuntu1.16 |
| Ubuntu:24.04:LTS | python-django | 0 | 3:4.2.11-1ubuntu1.5 |
| Ubuntu:24.10 | python-django | 0 | 3:4.2.15-1ubuntu1.2 |
| Ubuntu:25.04 | python-django | 0 | 3:4.2.18-1 |
| Ubuntu:Pro:14.04:LTS | python-django | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | python-django | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | python-django | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | python-django | 0 | 1:1.11.11-1ubuntu1.21+esm9 |
| Wolfi | py3-django | 0 | 5.1.5-r0 |
| Wolfi | py3-supported-django | 0 | 5.1.5-r0 |
| Wolfi | py3.10-django | 0 | 5.1.5-r0 |
| Wolfi | py3.10-django-bin | 0 | 5.1.5-r0 |
| Wolfi | py3.11-django | 0 | 5.1.5-r0 |
| Wolfi | py3.11-django-bin | 0 | 5.1.5-r0 |
| Wolfi | py3.12-django | 0 | 5.1.5-r0 |
| Wolfi | py3.12-django-bin | 0 | 5.1.5-r0 |
| Wolfi | py3.13-django | 0 | 5.1.5-r0 |
| Wolfi | py3.13-django-bin | 0 | 5.1.5-r0 |
| openSUSE:Leap 15.6 | python-Django | 0 | 4.2.11-150600.3.15.1 |
| openSUSE:Tumbleweed | python-Django | 0 | 5.1.5-1.1 |
| openSUSE:Tumbleweed | python-Django4 | 0 | 4.2.18-1.1 |
| openSUSE:Tumbleweed | python-Django6 | 0 | 6.0-1.1 |
| pypi | Django | 4.2 | No fix |
| pypi | Django | 5.0 | No fix |
| pypi | Django | 5.1 | 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