Django security releases issued: 3.1.1, 3.0.10 and 2.2.16

Posted by Carlton Gibson on September 1, 2020

In accordance with our security release policy, the Django team is issuing Django 3.1.1, Django 3.0.10 and Django 2.2.16. These releases address the security issue detailed below. We encourage all users of Django to upgrade as soon as possible.

CVE-2020-24583: Incorrect permissions on intermediate-level directories on Python 3.7+

On Python 3.7 and above, FILE_UPLOAD_DIRECTORY_PERMISSIONS mode was not applied to intermediate-level directories created in the process of uploading files and to intermediate-level collected static directories when using the collectstatic management command.

You should review and manually fix permissions on existing intermediate-level directories.

CVE-2020-24584: Permission escalation in intermediate-level directories of the file system cache on Python 3.7+

On Python 3.7 and above, the intermediate-level directories of the file system cache had the system's standard umask rather than 0o077 (no group or others permissions).

Affected supported versions

  • Django master branch
  • Django 3.1
  • Django 3.0
  • Django 2.2


Patches to resolve the issue have been applied to Django's master branch and the 3.1, 3.0, and 2.2 release branches. The patches may be obtained from the following changesets:



The following releases have been issued:

The PGP key ID used for these releases is Carlton Gibson: E17DF5C82B4F9D00.

General notes regarding security reporting

As always, we ask that potential security issues be reported via private email to, and not via Django's Trac instance or the django-developers list. Please see our security policies for further information.

Back to Top