ZeroHour

CVE-2024-45230

mass

Denial-of-Service in Django urlize/urlizetrunc Template Filters (CVE-2024-45230)

CVSS 3.1
7.5 high
EPSS
26%p98
Published
()
Modified
AI analysis

A denial-of-service flaw exists in Django's urlize() and urlizetrunc() template filters, which automatically convert URLs and email addresses in text into clickable links. An attacker who can submit very large input containing a specific sequence of characters to a Django application that runs that input through these filters can cause excessive processing and make the application unresponsive. The attacker gains only service disruption — the CVSS score of 7.5 reflects high availability impact with no confidentiality or integrity loss. Any Django deployment on 5.1.x before 5.1.1, 5.0.x before 5.0.9, or 4.2.x before 4.2.16 that processes sizable untrusted text through these filters is affected, with the long-term-support 4.2 branch likely accounting for many still-running instances. No public proof-of-concept or confirmed in-the-wild exploitation is known, though EPSS assigns an elevated 25.8% probability of exploitation within 30 days (98th percentile).

What to do: Upgrade Django to 5.1.1, 5.0.9, or 4.2.16 (or later) depending on your branch. As an interim mitigation, audit templates and view code for use of urlize()/urlizetrunc() on untrusted data and avoid applying these filters to very large inputs, or pre-truncate/strip the input before filtering. Given the elevated EPSS score, prioritize patching internet-facing Django applications.

Affected
djangoproject django5.1.x before 5.1.1
djangoproject django5.0.x before 5.0.9
djangoproject django4.2.x before 4.2.16
Estimated exposure
masshundreds of thousands of deployments plausibly affected, though only applications that pass large attacker-controlled text through urlize()/urlizetrunc() are… — Django is one of the most widely deployed Python web frameworks with a very large installed base of internet-facing sites, and the 4.2 long-term-support branch means many long-lived applications remain on affected versions, making the…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

An issue was discovered in Django 5.1 before 5.1.1, 5.0 before 5.0.9, and 4.2 before 4.2.16. The urlize() and urlizetrunc() template filters are subject to a potential denial-of-service attack via very large inputs with a specific sequence of characters.

Vendors
djangoproject
Products
django
Weakness
CWE-120
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H

In the news

No ingested article mentions this CVE yet.