Skip to content
OpenAdvisories
Medium · 5.3 Public exploit CVE-2021-3281 BIT-django-2021-3281EUVD-2021-0066GHSA-fvgf-6h6h-3322PYSEC-2021-9

Django Directory Traversal via archive.extract

Published Feb 2, 2021 · Updated Aug 3, 2024 · Assigned by mitre

Description

In Django 2.2 before 2.2.18, 3.0 before 3.0.12, and 3.1 before 3.1.6, the django.utils.archive.extract method (used by "startapp --template" and "startproject --template") allows directory traversal via an archive with absolute paths or relative paths with dot segments.

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 python-django 2:2.2.18-1 —
Debian 13 python-django 2:2.2.18-1 —
Debian 12 python-django 2:2.2.18-1 —
Debian 10 python-django 1:1.11.29-1+deb10u2 DLA-3164-1
Debian 9 python-django 1:1.10.7-2+deb9u10 DLA-2540-1
ReleasePackageFixed inAdvisory
Ubuntu 20.04 LTS python-django 2:2.2.12-1ubuntu0.3 USN-4715-1
Ubuntu 18.04 LTS python-django 1:1.11.11-1ubuntu1.10 USN-4715-1
Ubuntu 16.04 LTS python-django 1.8.7-1ubuntu5.14 USN-4715-1
Show 1 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro 14.04 LTS python-django 1.6.11-0ubuntu1.3+esm2 USN-4715-2
ReleasePackageFixed inAdvisory
Red Hat OpenStack 16 python-django20 +2 2.0.13-16.el8ost.1 RHSA-2021:5070, RHSA-2021:3490
Red Hat Ansible Automation Platform 4 automation-hub +2 4.2.2-1.el7pc RHSA-2021:0781
Red Hat Ansible Automation Platform 4 python-bleach +1 3.3.0-1.el7pc RHSA-2021:0781
Red Hat Ansible Automation Platform 4 python-bleach-allowlist +1 1.0.3-1.el7pc RHSA-2021:0781
Red Hat Ansible Automation Platform 4 python-galaxy-importer +1 0.2.15-1.el7pc RHSA-2021:0781
Red Hat Ansible Automation Platform 4 python-pulp-ansible +1 1:0.5.6-1.el7pc RHSA-2021:0781
Red Hat Ansible Automation Platform 4 python3-django 2.2.18-1.el7pc RHSA-2021:0781
ReleasePackageFixed inAdvisory
SUSE OpenStack Cloud Crowbar 9 crowbar-core 6.0+git.1611320924.849e748ff-3.34.1 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud Crowbar 9 crowbar-openstack 6.0+git.1610402342.21499240d-3.31.1 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud Crowbar 9 kibana 4.6.3-4.6.1 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud Crowbar 9 openstack-dashboard 14.1.1~dev10-3.21.3 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud Crowbar 9 openstack-manila 7.4.2~dev60-4.33.2 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud Crowbar 9 openstack-neutron 13.0.8~dev147-3.34.2 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud Crowbar 9 openstack-neutron-gbp 12.0.1~dev16-3.22.2 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud Crowbar 9 openstack-nova 18.3.1~dev78-3.34.2 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud Crowbar 9 python-Django1 1.11.29-3.18.2 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud Crowbar 9 release-notes-suse-openstack-cloud 9.20201214-3.27.2 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud Crowbar 9 sleshammer 0.9.0-7.6.1 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud Crowbar 8 crowbar-ha 5.0+git.1610564036.b75ee1b-3.35.1 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud Crowbar 8 crowbar-openstack 5.0+git.1610402513.08dca931e-4.49.1 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud Crowbar 8 kibana 4.6.3-3.6.1 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud Crowbar 8 openstack-neutron +1 11.0.9~dev69-3.40.1 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud Crowbar 8 openstack-nova +1 16.1.9~dev78-3.45.1 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud Crowbar 8 python-Django 1.11.29-3.22.1 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud Crowbar 8 release-notes-suse-openstack-cloud 8.20201214-3.29.1 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud Crowbar 8 sleshammer 0.8.0-0.20.2 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud Crowbar 8 spark 1.6.3-8.6.1 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud 9 ardana-db 9.0+git.1611600773.5f1de5f-3.22.1 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud 9 ardana-horizon 9.0+git.1610491814.38661c2-3.16.1 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud 9 ardana-logging 9.0+git.1610490922.d5f9813-3.16.1 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud 9 ardana-monasca 9.0+git.1610547641.d79ecfd-3.22.1 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud 9 ardana-opsconsole-ui 9.0+git.1611867924.eb82818-4.16.1 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud 9 ardana-osconfig 9.0+git.1610634027.5934cf8-3.25.1 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud 9 kibana 4.6.3-4.6.1 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud 9 openstack-dashboard 14.1.1~dev10-3.21.3 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud 9 openstack-manila 7.4.2~dev60-4.33.2 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud 9 openstack-neutron 13.0.8~dev147-3.34.2 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud 9 openstack-neutron-gbp 12.0.1~dev16-3.22.2 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud 9 openstack-nova 18.3.1~dev78-3.34.2 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud 9 python-Django1 1.11.29-3.18.2 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud 9 release-notes-suse-openstack-cloud 9.20201214-3.27.2 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud 9 venv-openstack-horizon 14.1.1~dev10-4.25.2 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud 9 venv-openstack-manila 7.4.2~dev60-3.27.2 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud 9 venv-openstack-neutron 13.0.8~dev147-6.25.2 SUSE-RU-2021:0497-1
SUSE OpenStack Cloud 9 venv-openstack-nova 18.3.1~dev78-3.25.2 SUSE-RU-2021:0497-1
Show 3 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SUSE OpenStack Cloud 8 ardana-horizon 8.0+git.1610733160.0f577f4-3.21.1 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud 8 ardana-logging 8.0+git.1610573640.452aed1-3.27.1 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud 8 ardana-monasca 8.0+git.1610740501.5dca121-3.27.1 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud 8 ardana-mq 8.0+git.1605176800.52cccfa-3.29.1 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud 8 ardana-osconfig 8.0+git.1610643571.91b88d6-3.52.1 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud 8 kibana 4.6.3-3.6.1 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud 8 openstack-neutron +1 11.0.9~dev69-3.40.1 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud 8 openstack-nova +1 16.1.9~dev78-3.45.1 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud 8 python-Django 1.11.29-3.22.1 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud 8 release-notes-suse-openstack-cloud 8.20201214-3.29.1 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud 8 spark 1.6.3-8.6.1 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud 8 venv-openstack-horizon 12.0.5~dev6-14.34.3 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud 8 venv-openstack-neutron 11.0.9~dev69-13.36.1 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud 8 venv-openstack-nova 16.1.9~dev78-11.34.1 SUSE-RU-2021:0351-1
SUSE OpenStack Cloud 7 crowbar-openstack 4.0+git.1616146720.44daffca0-9.81.2 SUSE-SU-2021:1963-1
SUSE OpenStack Cloud 7 grafana 6.7.4-1.24.2 SUSE-SU-2021:1963-1
SUSE OpenStack Cloud 7 kibana 4.6.6-9.2 SUSE-SU-2021:1963-1
SUSE OpenStack Cloud 7 monasca-installer 20180608_12.47-16.2 SUSE-SU-2021:1963-1
SUSE OpenStack Cloud 7 python-Django 1.8.19-3.29.1 SUSE-SU-2021:1963-1
SUSE OpenStack Cloud 7 python-py 1.8.1-11.16.2 SUSE-SU-2021:1963-1
SUSE OpenStack Cloud 7 rubygem-activerecord-session_store 0.1.2-3.4.2 SUSE-SU-2021:1963-1
SUSE HPE Helion OpenStack 8 ardana-horizon 8.0+git.1610733160.0f577f4-3.21.1 SUSE-RU-2021:0351-1
SUSE HPE Helion OpenStack 8 ardana-logging 8.0+git.1610573640.452aed1-3.27.1 SUSE-RU-2021:0351-1
SUSE HPE Helion OpenStack 8 ardana-monasca 8.0+git.1610740501.5dca121-3.27.1 SUSE-RU-2021:0351-1
SUSE HPE Helion OpenStack 8 ardana-mq 8.0+git.1605176800.52cccfa-3.29.1 SUSE-RU-2021:0351-1
SUSE HPE Helion OpenStack 8 ardana-osconfig 8.0+git.1610643571.91b88d6-3.52.1 SUSE-RU-2021:0351-1
SUSE HPE Helion OpenStack 8 kibana 4.6.3-3.6.1 SUSE-RU-2021:0351-1
SUSE HPE Helion OpenStack 8 openstack-neutron +1 11.0.9~dev69-3.40.1 SUSE-RU-2021:0351-1
SUSE HPE Helion OpenStack 8 openstack-nova +1 16.1.9~dev78-3.45.1 SUSE-RU-2021:0351-1
SUSE HPE Helion OpenStack 8 python-Django 1.11.29-3.22.1 SUSE-RU-2021:0351-1
SUSE HPE Helion OpenStack 8 release-notes-hpe-helion-openstack 8.20201214-3.29.1 SUSE-RU-2021:0351-1
SUSE HPE Helion OpenStack 8 spark 1.6.3-8.6.1 SUSE-RU-2021:0351-1
SUSE HPE Helion OpenStack 8 venv-openstack-horizon-hpe 12.0.5~dev6-14.34.1 SUSE-RU-2021:0351-1
SUSE HPE Helion OpenStack 8 venv-openstack-neutron 11.0.9~dev69-13.36.1 SUSE-RU-2021:0351-1
SUSE HPE Helion OpenStack 8 venv-openstack-nova 16.1.9~dev78-11.34.1 SUSE-RU-2021:0351-1
ReleasePackageFixed inAdvisory
Alpine v3.24 py3-django 3.1.6-r0 —
Alpine v3.23 py3-django 3.1.6-r0 —
Alpine v3.22 py3-django 3.1.6-r0 —
Alpine v3.21 py3-django 3.1.6-r0 —
Alpine v3.20 py3-django 3.1.6-r0 —
Show 7 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Alpine v3.19 py3-django 3.1.6-r0 —
Alpine v3.18 py3-django 3.1.6-r0 —
Alpine v3.17 py3-django 3.1.6-r0 —
Alpine v3.16 py3-django 3.1.6-r0 —
Alpine v3.15 py3-django 3.1.6-r0 —
Alpine v3.14 py3-django 3.1.6-r0 —
Alpine v3.13 py3-django 3.1.6-r0 —

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

GitHub 1 repository

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Affected packages

EcosystemPackageAffectedFixedRecord
PyPI django >= 2.2, < 2.2.18 2.2.18 GHSA-fvgf-6h6h-3322
PyPI django >= 3.1, < 3.1.6 3.1.6 GHSA-fvgf-6h6h-3322
PyPI django >= 3.0, < 3.0.12 3.0.12 GHSA-fvgf-6h6h-3322
PyPI django >= 2.2, < 2.2.18 · >= 3.0, < 3.0.12 · >= 3.1, < 3.1.6 2.2.18, 3.0.12, 3.1.6 PYSEC-2021-9

Advisories 11

References