CVE-2014-0481: Django Sequential File Name Generation Denial of Service

django Updated 02 Oct 2025

Summary

26/08/2014
Yes i
High
7.5

CVE-2014-0481: The default configuration for the file upload handling system in Django before 1.4.14, 1.5.x before 1.5.9, 1.6.x before 1.6.6, and 1.7 before release candidate 3 uses a sequential file name generation process when a file... Affects django across 3 version ranges.

< 1.4.14 >= 1.5, < 1.5.9 >= 1.6, < 1.6.6

Fixed in 1.4.14, 1.5.9 or 1.6.6, depending on the release line you run. How to fix ↓

Also tracked for

The same CVE-2014-0481 is tracked separately for each ecosystem and vendor. Its fix information is the same; the package and affected versions differ.

Free scan

Check if this vulnerability affects your application

Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.

Check my app free

No signup required · Results in about 60 seconds

Sponsored Devnack Your last release was probably never penetration tested Manual testing by engineers who build software, not an auditor's checklist. Trusted by teams at Swift and Google Talk to Devnack

Background

Django is a popular Python web framework that provides a set of tools and libraries for building web applications. It includes a file upload handling system that allows users to upload files to the server. However, prior to versions 1.4.14, 1.5.x before 1.5.9, 1.6.x before 1.6.6, and 1.7 before release candidate 3, Django's default configuration for file upload handling used a sequential file name generation process. This means that when a file with a conflicting name is uploaded, Django appends a number to the file name to make it unique. This vulnerability allows remote attackers to cause a denial of service (CPU consumption) by uploading multiple files with the same name.

Vulnerability Detail

The vulnerability arises from the sequential file name generation process used by Django's file upload handling system. When a file with a conflicting name is uploaded, Django appends a number to the file name to make it unique. However, this sequential process can be exploited by remote attackers to cause a denial of service. By uploading multiple files with the same name, the CPU consumption of the server increases significantly, leading to a potential service disruption. This vulnerability can be particularly damaging in scenarios where file uploads are frequent and large in size.

How To Fix

Latest published version: 6.1.2 as of 22 Oct 2026

pip install --upgrade "django==6.1.2"

Upgrading to it may include breaking changes; the versions below are the minimum fixed release for this vulnerability.

If you can't move to the latest

The minimum fixed version depends on the release line you run.

  • < 1.4.14 1.4.14
    pip install --upgrade "django==1.4.14"
  • >= 1.5, < 1.5.9 1.5.9
    pip install --upgrade "django==1.5.9"
  • >= 1.6, < 1.6.6 1.6.6
    pip install --upgrade "django==1.6.6"

Tip — Not sure which release line you're on? Vulert can find the fix for the version you are using. Scan free →

Workaround

If upgrading Django is not immediately feasible, a temporary workaround can be implemented by modifying the file upload handling code. Instead of relying on the default sequential file name generation, developers can implement a custom file naming scheme that ensures unique file names without relying on sequential numbering. Here is an example of a custom file naming function in Python:

import os

def generate_unique_filename(filename):
    base_name, ext = os.path.splitext(filename)
    counter = 1
    while os.path.exists(filename):
        filename = f'{base_name}_{counter}{ext}'
        counter += 1
    return filename

Conclusion

The sequential file name generation vulnerability in Django's file upload handling system can be exploited by remote attackers to cause a denial of service. It is crucial to update Django to versions 1.4.14, 1.5.9, 1.6.6, or later to mitigate this vulnerability. If immediate upgrade is not possible, developers can implement a custom file naming scheme as a temporary workaround. For further assistance and support in vulnerability remediation, please contact DevNack.com.

See every vulnerability recorded for django →

Share this vulnerability

FAQ

The vulnerability allows remote attackers to cause a denial of service by uploading multiple files with the same name. This can lead to high CPU consumption on the server, potentially resulting in a service disruption.

The vulnerability affects Django versions prior to 1.4.14, 1.5.x before 1.5.9, 1.6.x before 1.6.6, and 1.7 before release candidate 3.

You can use Vulert's playground at Vulert Scanner to check if your application is affected by this vulnerability. Simply provide your Pipfile.lock file, and Vulert will analyze it for any open-source vulnerabilities, including this one.

Yes, the vulnerability has been fixed in Django versions 1.4.14, 1.5.9, 1.6.6, and later releases. It is recommended to update Django to the latest stable release to ensure the fix is applied.

Yes, if upgrading Django is not immediately feasible, a temporary workaround can be implemented by modifying the file upload handling code. Details of the workaround can be found in the 'workaround' section of this report.

Related vulnerabilities

Recent vulnerabilities recorded for django.

How To Fix

Latest published version: 6.1.2 as of 22 Oct 2026

pip install --upgrade "django==6.1.2"

Upgrading to it may include breaking changes; the versions below are the minimum fixed release for this vulnerability.

If you can't move to the latest

The minimum fixed version depends on the release line you run.

  • < 1.4.14 1.4.14
    pip install --upgrade "django==1.4.14"
  • >= 1.5, < 1.5.9 1.5.9
    pip install --upgrade "django==1.5.9"
  • >= 1.6, < 1.6.6 1.6.6
    pip install --upgrade "django==1.6.6"

Tip — Not sure which release line you're on? Vulert can find the fix for the version you are using. Scan free →

Subscribe to Vulert on Telegram
Daily digest of new CVEs, critical and high severity, affected packages and fixes — plus a weekly roundup.
Join the channel →
Help improve this record
Report an issue or send feedback