CVE-2024-45230
NoneCVSS
—
EPSS
25.8%
Published
Oct 8, 2024
CISA due date
—
Cloudanix analysis
A flaw in a popular web framework allows attackers to send specially crafted large data that can make websites using it slow down or stop responding.
- 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
The urlize() and urlizetrunc() template filters in affected Django versions can be forced into excessive processing or resource consumption when supplied very large inputs containing a specific character sequence, resulting in denial of service.
Why it matters to the business
Applications may become unresponsive or crash under load from crafted requests, causing service outages, degraded user experience, and potential revenue loss until the affected instances are restarted or patched.
How an attack unfolds
An attacker identifies a Django-based application that renders user-supplied content through the urlize or urlizetrunc template filters, crafts a very large payload containing the triggering character sequence, and submits it via any input path that reaches those filters, triggering resource exhaustion.
How to fix it
Upgrade Django to 5.1.1 or later, 5.0.9 or later, or 4.2.16 or later. For the Mattermost component, upgrade to version 8.1.7+incompatible or later. Apply the exact fixed commits listed for each repository if using source builds.
How to confirm the fix worked
Confirm the installed Django version is at or above the fixed releases, review template usage to ensure urlize and urlizetrunc are not applied to untrusted large inputs, and test rendering performance with large payloads after upgrade.
Typical attack path
- Locate web endpoints or template rendering paths that accept attacker-controlled strings
- Craft an oversized input containing the specific character sequence known to trigger the filter issue
- Submit the payload through forms, APIs, or other user-controlled data channels
- Observe service degradation or unresponsiveness on the target application
How to detect it
Review web server and application logs for unusually large request bodies or query parameters reaching template rendering paths; monitor for high CPU or memory usage on worker processes handling template filters; correlate request timestamps with service restarts or 5xx errors.
What your security team should do
- Immediately upgrade all Django instances to the fixed versions provided
- Scan codebases for use of urlize() and urlizetrunc() on potentially large or untrusted inputs
- Implement input size limits or sanitization before template rendering where feasible
- Monitor application logs and resource usage for sudden spikes consistent with filter processing
The record
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.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| PyPI | django | 4.2 | 4.2.16 |
| PyPI | django | 5.0 | 5.0.9 |
| PyPI | django | 5.1 | 5.1.1 |
| Bitnami | django | 4.2.0 | 4.2.16 |
| Debian:11 | python-django | 0 | No fix |
| Debian:12 | python-django | 0 | No fix |
| Debian:13 | python-django | 0 | 3:4.2.16-1 |
| Debian:14 | python-django | 0 | 3:4.2.16-1 |
| Mageia:9 | python-django | 0 | 4.1.13-1.2.mga9 |
| Red Hat:ansible_automation_platform:2.5::el8 | automation-controller-venv-tower | 0 | 0:4.6.2-1.el8ap |
| Red Hat:ansible_automation_platform:2.5::el8 | automation-gateway-server | 0 | 0:2.5.3-1.el8ap |
| Red Hat:ansible_automation_platform:2.5::el8 | receptor | 0 | 0:1.4.9-2.el8ap |
| Red Hat:ansible_automation_platform:2.5::el8 | receptor-debuginfo | 0 | 0:1.4.9-2.el8ap |
| Red Hat:ansible_automation_platform:2.5::el8 | receptor-debugsource | 0 | 0:1.4.9-2.el8ap |
| Red Hat:ansible_automation_platform:2.5::el8 | receptorctl | 0 | 0:1.4.9-2.el8ap |
| Red Hat:ansible_automation_platform:2.5::el9 | automation-controller-venv-tower | 0 | 0:4.6.2-1.el9ap |
| Red Hat:ansible_automation_platform:2.5::el9 | automation-gateway-server | 0 | 0:2.5.3-1.el9ap |
| Red Hat:ansible_automation_platform:2.5::el9 | receptor | 0 | 0:1.4.9-2.el9ap |
| Red Hat:ansible_automation_platform:2.5::el9 | receptor-debuginfo | 0 | 0:1.4.9-2.el9ap |
| Red Hat:ansible_automation_platform:2.5::el9 | receptor-debugsource | 0 | 0:1.4.9-2.el9ap |
| Red Hat:ansible_automation_platform:2.5::el9 | receptorctl | 0 | 0:1.4.9-2.el9ap |
| Red Hat:ansible_automation_platform_developer:2.5::el8 | automation-controller-venv-tower | 0 | 0:4.6.2-1.el8ap |
| Red Hat:ansible_automation_platform_developer:2.5::el8 | receptor | 0 | 0:1.4.9-2.el8ap |
| Red Hat:ansible_automation_platform_developer:2.5::el8 | receptor-debuginfo | 0 | 0:1.4.9-2.el8ap |
| Red Hat:ansible_automation_platform_developer:2.5::el8 | receptor-debugsource | 0 | 0:1.4.9-2.el8ap |
| Red Hat:ansible_automation_platform_developer:2.5::el8 | receptorctl | 0 | 0:1.4.9-2.el8ap |
| Red Hat:ansible_automation_platform_developer:2.5::el9 | automation-controller-venv-tower | 0 | 0:4.6.2-1.el9ap |
| Red Hat:ansible_automation_platform_developer:2.5::el9 | receptor | 0 | 0:1.4.9-2.el9ap |
| Red Hat:ansible_automation_platform_developer:2.5::el9 | receptor-debuginfo | 0 | 0:1.4.9-2.el9ap |
| Red Hat:ansible_automation_platform_developer:2.5::el9 | receptor-debugsource | 0 | 0:1.4.9-2.el9ap |
| Red Hat:ansible_automation_platform_developer:2.5::el9 | receptorctl | 0 | 0:1.4.9-2.el9ap |
| Red Hat:ansible_automation_platform_inside:2.5::el8 | receptor | 0 | 0:1.4.9-2.el8ap |
| Red Hat:ansible_automation_platform_inside:2.5::el8 | receptor-debuginfo | 0 | 0:1.4.9-2.el8ap |
| Red Hat:ansible_automation_platform_inside:2.5::el8 | receptor-debugsource | 0 | 0:1.4.9-2.el8ap |
| Red Hat:ansible_automation_platform_inside:2.5::el8 | receptorctl | 0 | 0:1.4.9-2.el8ap |
| Red Hat:ansible_automation_platform_inside:2.5::el9 | receptor | 0 | 0:1.4.9-2.el9ap |
| Red Hat:ansible_automation_platform_inside:2.5::el9 | receptor-debuginfo | 0 | 0:1.4.9-2.el9ap |
| Red Hat:ansible_automation_platform_inside:2.5::el9 | receptor-debugsource | 0 | 0:1.4.9-2.el9ap |
| Red Hat:ansible_automation_platform_inside:2.5::el9 | receptorctl | 0 | 0:1.4.9-2.el9ap |
| SUSE:Linux Enterprise Module for Package Hub 15 SP6 | python-Django | 0 | 4.2.11-150600.3.9.1 |
| SUSE:Package Hub 15 SP5 | python-Django | 0 | 2.2.28-bp155.7.18.1 |
| Ubuntu:20.04:LTS | python-django | 0 | 2:2.2.12-1ubuntu0.25 |
| Ubuntu:22.04:LTS | python-django | 0 | 2:3.2.12-2ubuntu1.14 |
| Ubuntu:24.04:LTS | python-django | 0 | 3:4.2.11-1ubuntu1.3 |
| Ubuntu:24.10 | python-django | 0 | 3:4.2.15-1ubuntu1 |
| Ubuntu:25.04 | python-django | 0 | 3:4.2.15-1ubuntu1 |
| 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 | 1:1.11.11-1ubuntu1.21+esm7 |
| openSUSE:Leap 15.5 | python-Django | 0 | 2.0.7-150000.1.33.1 |
| openSUSE:Leap 15.5 | python-Django | 0 | 2.0.7-150000.1.36.1 |
| openSUSE:Leap 15.5 | python-Django | 0 | 2.2.28-bp155.7.18.1 |
| openSUSE:Leap 15.6 | python-Django | 0 | 4.2.11-150600.3.9.1 |
| openSUSE:Tumbleweed | python-Django | 0 | 5.1.1-1.1 |
| openSUSE:Tumbleweed | python-Django4 | 0 | 4.2.16-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