Cloudanix VulnDB

CVE-2024-56374

None

CVSS

—

EPSS

1.3%

Published

Jan 14, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

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

  1. Identify a Django application endpoint accepting user input via a form containing GenericIPAddressField
  2. Craft and submit an IPv6 address string exceeding normal length bounds or containing repeated segments
  3. Trigger the vulnerable clean_ipv6_address or is_valid_ipv6_address logic during form validation
  4. 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