# Documentation Django 3.1.9.dev

# Archive des issues de sécurité

L’équipe de développement de Django s’engage fortement au signalement et à la publication des failles de sécurité, comme expliqué dans politiques de sécurité de Django.

Dans le cadre de cet engagement, nous maintenons la liste historique suivante des problèmes qui ont été corrigés et publiés. Pour chaque problème, la liste ci-dessous contient la date, une brève description, l’identifiant CVE le cas échéant, une liste des versions concernées, un lien vers l’annonce complète et des liens vers les correctifs correspondants.

Quelques mises en garde importantes applicables à ces informations

- Les listes des versions concernées ne contiennent que les versions de Django ayant un statut de stabilité et de prise en charge des correctifs de sécurité au moment de la publication de ces correctifs. Cela signifie que les anciennes versions (dont la prise en charge de la sécurité a expiré) et les versions dans un état de pré-publication (alpha/beta/RC) au moment de l’annonce pourraient également avoir été touchées, mais n’apparaissent pas dans la liste.
- Le projet Django a émis de temps à autre des avertissements de sécurité signalant de potentiels problèmes de sécurité pouvant résulter de configurations incorrectes ou de l’utilisation de code externe à Django. Certains de ces avertissements ont reçu un code CVE ; lorsque c’est le cas, ils apparaissent dans cette liste, mais comme ils ne sont pas accompagnés de correctifs ou de publication de code, seules la description, l’annonce et le code CVE sont visibles.

## Problèmes précédant le processus de sécurité de Django

Certains problèmes de sécurité ont été gérés avant que Django possède un processus de sécurité formel. Pour ceux-ci, il se peut qu’il n’y ait pas eu de nouvelles publications de Django et qu’aucun code CVE n’ait été demandé.

### August 16, 2006 - CVE-2007-0404

Filename validation issue in translation framework. Full description

#### Versions affectées

- Django 0.90 (patch)
- Django 0.91 (patch)
- Django 0.95 (patch) (released January 21 2007)

### January 21, 2007 - CVE-2007-0405

Apparent « caching » of authenticated user. Full description

#### Versions affectées

- Django 0.95 (patch)

## Issues relevant du processus de sécurité de Django

Toutes les autres issues ont été traités dans le cadre du processus de sécurité de Django. Elles sont listées ci-dessous.

### October 26, 2007 - CVE-2007-5712

Denial-of-service via arbitrarily-large `Accept-Language` header. Full description

#### Versions affectées

- Django 0.91 (patch)
- Django 0.95 (patch)
- Django 0.96 (patch)

### May 14, 2008 - CVE-2008-2302

XSS via admin login redirect. Full description

#### Versions affectées

- Django 0.91 (patch)
- Django 0.95 (patch)
- Django 0.96 (patch)

### September 2, 2008 - CVE-2008-3909

CSRF via preservation of POST data during admin login. Full description

#### Versions affectées

- Django 0.91 (patch)
- Django 0.95 (patch)
- Django 0.96 (patch)

### July 28, 2009 - CVE-2009-2659

Directory-traversal in development server media handler. Full description

#### Versions affectées

- Django 0.96 (patch)
- Django 1.0 (patch)

### October 9, 2009 - CVE-2009-3965

Denial-of-service via pathological regular expression performance. Full description

#### Versions affectées

- Django 1.0 (patch)
- Django 1.1 (patch)

### September 8, 2010 - CVE-2010-3082

XSS via trusting unsafe cookie value. Full description

#### Versions affectées

- Django 1.2 (patch)

### December 22, 2010 - CVE-2010-4534

Information leakage in administrative interface. Full description

#### Versions affectées

- Django 1.1 (patch)
- Django 1.2 (patch)

### December 22, 2010 - CVE-2010-4535

Denial-of-service in password-reset mechanism. Full description

#### Versions affectées

- Django 1.1 (patch)
- Django 1.2 (patch)

### February 8, 2011 - CVE-2011-0696

CSRF via forged HTTP headers. Full description

#### Versions affectées

- Django 1.1 (patch)
- Django 1.2 (patch)

### February 8, 2011 - CVE-2011-0697

XSS via unsanitized names of uploaded files. Full description

#### Versions affectées

- Django 1.1 (patch)
- Django 1.2 (patch)

### February 8, 2011 - CVE-2011-0698

Directory-traversal on Windows via incorrect path-separator handling. Full description

#### Versions affectées

- Django 1.1 (patch)
- Django 1.2 (patch)

### September 9, 2011 - CVE-2011-4136

Session manipulation when using memory-cache-backed session. Full description

#### Versions affectées

- Django 1.2 (patch)
- Django 1.3 (patch)

### September 9, 2011 - CVE-2011-4137

Denial-of-service via `URLField.verify_exists`. Full description

#### Versions affectées

- Django 1.2 (patch)
- Django 1.3 (patch)

### September 9, 2011 - CVE-2011-4138

Information leakage/arbitrary request issuance via `URLField.verify_exists`. Full description

#### Versions affectées

- Django 1.2: (patch)
- Django 1.3: (patch)

### September 9, 2011 - CVE-2011-4139

`Host` header cache poisoning. Full description

#### Versions affectées

- Django 1.2 (patch)
- Django 1.3 (patch)

### September 9, 2011 - CVE-2011-4140

Potential CSRF via `Host` header. Full description

#### Versions affectées

This notification was an advisory only, so no patches were issued.

- Django 1.2
- Django 1.3

### July 30, 2012 - CVE-2012-3442

XSS via failure to validate redirect scheme. Full description

#### Versions affectées

- Django 1.3: (patch)
- Django 1.4: (patch)

### July 30, 2012 - CVE-2012-3443

Denial-of-service via compressed image files. Full description

#### Versions affectées

- Django 1.3: (patch)
- Django 1.4: (patch)

### July 30, 2012 - CVE-2012-3444

Denial-of-service via large image files. Full description

#### Versions affectées

- Django 1.3 (patch)
- Django 1.4 (patch)

### October 17, 2012 - CVE-2012-4520

`Host` header poisoning. Full description

#### Versions affectées

- Django 1.3 (patch)
- Django 1.4 (patch)

### 10 décembre 2012 - Pas de CVE 1

Additional hardening of `Host` header handling. Full description

#### Versions affectées

- Django 1.3 (patch)
- Django 1.4 (patch)

### 10 Décembre 2012 - Pas de CVE 2

Additional hardening of redirect validation. Full description

#### Versions affectées

- Django 1.3: (patch)
- Django 1.4: (patch)

### 19 février 2013 - Pas de CVE

Additional hardening of `Host` header handling. Full description

#### Versions affectées

- Django 1.3 (patch)
- Django 1.4 (patch)

### February 19, 2013 - CVE-2013-1664 / CVE-2013-1665

Entity-based attacks against Python XML libraries. Full description

#### Versions affectées

- Django 1.3 (patch)
- Django 1.4 (patch)

### February 19, 2013 - CVE-2013-0305

Information leakage via admin history log. Full description

#### Versions affectées

- Django 1.3 (patch)
- Django 1.4 (patch)

### February 19, 2013 - CVE-2013-0306

Denial-of-service via formset `max_num` bypass. Full description

#### Versions affectées

- Django 1.3 (patch)
- Django 1.4 (patch)

### August 13, 2013 - CVE-2013-4249

XSS via admin trusting `URLField` values. Full description

#### Versions affectées

- Django 1.5 (patch)

### August 13, 2013 - CVE-2013-6044

Possible XSS via unvalidated URL redirect schemes. Full description

#### Versions affectées

- Django 1.4 (patch)
- Django 1.5 (patch)

### September 10, 2013 - CVE-2013-4315

Directory-traversal via `ssi` template tag. Full description

#### Versions affectées

- Django 1.4 (patch)
- Django 1.5 (patch)

### September 14, 2013 - CVE-2013-1443

Denial-of-service via large passwords. Full description

#### Versions affectées

- Django 1.4 (patch and Python compatibility fix)
- Django 1.5 (patch)

### April 21, 2014 - CVE-2014-0472

Unexpected code execution using `reverse()`. Full description

#### Versions affectées

- Django 1.4 (patch)
- Django 1.5 (patch)
- Django 1.6 (patch)
- Django 1.7 (patch)

### April 21, 2014 - CVE-2014-0473

Caching of anonymous pages could reveal CSRF token. Full description

#### Versions affectées

- Django 1.4 (patch)
- Django 1.5 (patch)
- Django 1.6 (patch)
- Django 1.7 (patch)

### April 21, 2014 - CVE-2014-0474

MySQL typecasting causes unexpected query results. Full description

#### Versions affectées

- Django 1.4 (patch)
- Django 1.5 (patch)
- Django 1.6 (patch)
- Django 1.7 (patch)

### May 18, 2014 - CVE-2014-1418

Caches may be allowed to store and serve private data. Full description

#### Versions affectées

- Django 1.4 (patch)
- Django 1.5 (patch)
- Django 1.6 (patch)
- Django 1.7 (patch)

### May 18, 2014 - CVE-2014-3730

Malformed URLs from user input incorrectly validated. Full description

#### Versions affectées

- Django 1.4 (patch)
- Django 1.5 (patch)
- Django 1.6 (patch)
- Django 1.7 (patch)

### August 20, 2014 - CVE-2014-0480

`reverse()` can generate URLs pointing to other hosts. Full description

#### Versions affectées

- Django 1.4 (patch)
- Django 1.5 (patch)
- Django 1.6 (patch)
- Django 1.7 (patch)

### August 20, 2014 - CVE-2014-0481

File upload denial of service. Full description

#### Versions affectées

- Django 1.4 (patch)
- Django 1.5 (patch)
- Django 1.6 (patch)
- Django 1.7 (patch)

### August 20, 2014 - CVE-2014-0482

`RemoteUserMiddleware` session hijacking. Full description

#### Versions affectées

- Django 1.4 (patch)
- Django 1.5 (patch)
- Django 1.6 (patch)
- Django 1.7 (patch)

### August 20, 2014 - CVE-2014-0483

Data leakage via querystring manipulation in admin. Full description

#### Versions affectées

- Django 1.4 (patch)
- Django 1.5 (patch)
- Django 1.6 (patch)
- Django 1.7 (patch)

### January 13, 2015 - CVE-2015-0219

WSGI header spoofing via underscore/dash conflation. Full description

#### Versions affectées

- Django 1.4 (patch)
- Django 1.6 (patch)
- Django 1.7 (patch)

### January 13, 2015 - CVE-2015-0220

Mitigated possible XSS attack via user-supplied redirect URLs. Full description

#### Versions affectées

- Django 1.4 (patch)
- Django 1.6 (patch)
- Django 1.7 (patch)

### January 13, 2015 - CVE-2015-0221

Denial-of-service attack against `django.views.static.serve()`. Full description

#### Versions affectées

- Django 1.4 (patch)
- Django 1.6 (patch)
- Django 1.7 (patch)

### January 13, 2015 - CVE-2015-0222

Database denial-of-service with `ModelMultipleChoiceField`. Full description

#### Versions affectées

- Django 1.6 (patch)
- Django 1.7 (patch)

### March 9, 2015 - CVE-2015-2241

XSS attack via properties in `ModelAdmin.readonly_fields`. Full description

#### Versions affectées

- Django 1.7 (patch)
- Django 1.8 (patch)

### 18 mars 2015 - CVE-2015-2316

Possibilité de déni de service avec `strip_tags()`. Description complète

#### Versions affectées

- Django 1.6 (patch)
- Django 1.7 (patch)
- Django 1.8 (patch)

### 18 mars 2015 - CVE-2015-2317

Attaque XSS atténuée possible via des URL de redirection fournis par l’utilisateur. Description complète

#### Versions affectées

- Django 1.4 (patch)
- Django 1.6 (patch)
- Django 1.7 (patch)
- Django 1.8 (patch)

### 20 mai 2015 - CVE-2015-3982

Fixed session flushing in the cached_db backend. Full description

#### Versions affectées

- Django 1.8 (patch)

### 8 juillet 2015 - CVE-2015-5143

Denial-of-service possibility by filling session store. Full description

#### Versions affectées

- Django 1.8 (patch)
- Django 1.7 (patch)
- Django 1.4 (patch)

### 8 juillet 2015 - CVE-2015-5144

Possibilité d’injection dans les en-têtes depuis que les validateurs acceptent des retours à ligne en entrée. Description complète

#### Versions affectées

- Django 1.8 (patch)
- Django 1.7 (patch)
- Django 1.4 (patch)

### 8 juillet 2015 - CVE-2015-5145

Denial-of-service possibility in URL validation. Full description

#### Versions affectées

- Django 1.8 (patch)

### 18 août 2015 - CVE-2015-5963 / CVE-2015-5964

Denial-of-service possibility in `logout()` view by filling session store. Full description

#### Versions affectées

- Django 1.8 (patch)
- Django 1.7 (patch)
- Django 1.4 (patch)

### 24 novembre 2015 - CVE-2015-8213

Settings leak possibility in `date` template filter. Full description

#### Versions affectées

- Django 1.8 (patch)
- Django 1.7 (patch)

### 1 février 2016 - CVE-2016-2048

User with « change » but not « add » permission can create objects for `ModelAdmin`’s with `save_as=True`. Full description

#### Versions affectées

- Django 1.9 (patch)

### 1 mars 2016 - CVE-2016-2512

Redirection malicieuse et attaque XSS possible via des URL de redirection fournis par l’utilisateur et contenant de l’authentification basique. Description complète

#### Versions affectées

- Django 1.9 (patch)
- Django 1.8 (patch)

### March 1, 2016 - CVE-2016-2513

User enumeration through timing difference on password hasher work factor upgrade. Full description

#### Versions affectées

- Django 1.9 (patch)
- Django 1.8 (patch)

### 18 juillet 2016 - CVE-2016-6186

XSS dans les fenêtres d’ajout/modification d’éléments liés. Description complète

#### Versions affectées

- Django 1.9 (correctif)
- Django 1.8 (correctif)

### 26 septembre 2016 - CVE-2016-7401

Contournement de protection CSRF pour un site avec Google Analytics. Description complète

#### Versions affectées

- Django 1.9 (correctif)
- Django 1.8 (correctif)

### 1er novembre 2016 - CVE-2016-9013

Utilisateur avec mot de passe créé en dur lors du lancement des tests avec Oracle. Description complète

#### Versions affectées

- Django 1.10 (correctif)
- Django 1.9 (correctif)
- Django 1.8 (correctif)

### 1er novembre 2016 - CVE-2016-9014

Vulnérabilité de re-liaison DNS avec `DEBUG=True`. Description complète

#### Versions affectées

- Django 1.10 (correctif)
- Django 1.9 (correctif)
- Django 1.8 (correctif)

### 4 avril 2017 - CVE-2017-7233

Redirection ouverte et attaque XSS possible par des URL de redirection numériques fournis par des utilisateurs. Description complète

#### Versions affectées

- Django 1.10 (correctif)
- Django 1.9 (correctif)
- Django 1.8 (correctif)

### 4 avril 2017 - CVE-2017-7234

Vulnérabilité de redirection ouverte dans `django.views.static.serve()`. Description complète

#### Versions affectées

- Django 1.10 (correctif)
- Django 1.9 (correctif)
- Django 1.8 (correctif)

### 5 septembre 2017 - CVE-2017-12794

Attaque XSS possible dans la section « traceback » de la page de débogage technique 500. Description complète

#### Versions affectées

- Django 1.11 (correctif)
- Django 1.10 (correctif)

### 1er février 2018 - CVE-2018-6188

Fuite d’informations dans le formulaire `AuthenticationForm`. Description complète

#### Versions affectées

- Django 2.0 (correctif)
- Django 1.11 (correctif)

### 6 mars 2018 - CVE-2018-7536

Possibilité de déni de service dans les filtres de gabarit `urlize` et `urlizetrunc`. Description complète

#### Versions affectées

- Django 2.0 (correctif)
- Django 1.11 (correctif)
- Django 1.8 (correctif)

### 6 mars 2018 - CVE-2018-7537

Possibilité de déni de service dans les filtres de gabarit `truncatechars_html` et `truncatewords_html`. Description complète

#### Versions affectées

- Django 2.0 (correctif)
- Django 1.11 (correctif)
- Django 1.8 (correctif)

### 1er août 2018 - CVE-2018-14574

Possibilité de redirection ouverte dans `CommonMiddleware`. Description complète

#### Versions affectées

- Django 2.1 (correctif)
- Django 2.0 (correctif)
- Django 1.11 (correctif)

### 1er octobre 2018 - CVE-2018-16984

Révélation de l’empreinte de mots de passe pour les utilisateurs du site d’administration en « lecture seule ». Description complète

#### Versions affectées

- Django 2.1 (correctif)

### 4 janvier 2019 - CVE-2019-3498

Possibilité de mystification de contenu dans la page 404 par défaut. Description complète

#### Versions affectées

- Django 2.1 (correctif)
- Django 2.0 (correctif)
- Django 1.11 (correctif)

### 11 février 2019 - CVE-2019-6975

Épuisement de mémoire dans `django.utils.numberformat.format()`. Description complète

#### Versions affectées

- Django 2.1 (correctif)
- Django 2.0 (correctif et correction)
- Django 1.11 (correctif)

### June 3, 2019 - CVE-2019-11358

Prototype pollution in bundled jQuery. Full description

#### Versions affectées

- Django 2.2 (patch)
- Django 2.1 (patch)

### June 3, 2019 - CVE-2019-12308

XSS via « Current URL » link generated by `AdminURLFieldWidget`. Full description

#### Versions affectées

- Django 2.2 (patch)
- Django 2.1 (patch)
- Django 1.11 (patch)

### July 1, 2019 - CVE-2019-12781

Incorrect HTTP detection with reverse-proxy connecting via HTTPS. Full description

#### Versions affectées

- Django 2.2 (patch)
- Django 2.1 (patch)
- Django 1.11 (patch)

### August 1, 2019 - CVE-2019-14232

Denial-of-service possibility in `django.utils.text.Truncator`. Full description

#### Versions affectées

- Django 2.2 (patch)
- Django 2.1 (patch)
- Django 1.11 (patch)

### August 1, 2019 - CVE-2019-14233

Denial-of-service possibility in `strip_tags()`. Full description

#### Versions affectées

- Django 2.2 (patch)
- Django 2.1 (patch)
- Django 1.11 (patch)

### August 1, 2019 - CVE-2019-14234

SQL injection possibility in key and index lookups for `JSONField`/`HStoreField`. Full description

#### Versions affectées

- Django 2.2 (patch)
- Django 2.1 (patch)
- Django 1.11 (patch)

### August 1, 2019 - CVE-2019-14235

Potential memory exhaustion in `django.utils.encoding.uri_to_iri()`. Full description

#### Versions affectées

- Django 2.2 (patch)
- Django 2.1 (patch)
- Django 1.11 (patch)

### December 2, 2019 - CVE-2019-19118

Privilege escalation in the Django admin. Full description

#### Versions affectées

- Django 3.0 (patch)
- Django 2.2 (patch)
- Django 2.1 (patch)

### December 18, 2019 - CVE-2019-19844

Potential account hijack via password reset form. Full description

#### Versions affectées

- Django 3.0 (patch)
- Django 2.2 (patch)
- Django 1.11 (patch)

### February 3, 2020 - CVE-2020-7471

Potential SQL injection via `StringAgg(delimiter)`. Full description

#### Versions affectées

- Django 3.0 (patch)
- Django 2.2 (patch)
- Django 1.11 (patch)

### March 4, 2020 - CVE-2020-9402

Potential SQL injection via `tolerance` parameter in GIS functions and aggregates on Oracle. Full description

#### Versions affectées

- Django 3.0 (patch)
- Django 2.2 (patch)
- Django 1.11 (patch)

### June 3, 2020 - CVE-2020-13254

Potential data leakage via malformed memcached keys. Full description

#### Versions affectées

- Django 3.0 (patch)
- Django 2.2 (patch)

### June 3, 2020 - CVE-2020-13596

Possible XSS via admin `ForeignKeyRawIdWidget`. Full description

#### Versions affectées

- Django 3.0 (patch)
- Django 2.2 (patch)

### September 1, 2020 - CVE-2020-24583

Incorrect permissions on intermediate-level directories on Python 3.7+. Full description

#### Versions affectées

- Django 3.1 (patch)
- Django 3.0 (patch)
- Django 2.2 (patch)

### September 1, 2020 - CVE-2020-24584

Permission escalation in intermediate-level directories of the file system cache on Python 3.7+. Full description

#### Versions affectées

- Django 3.1 (patch)
- Django 3.0 (patch)
- Django 2.2 (patch)

### February 1, 2021 - CVE-2021-3281

Potential directory-traversal via `archive.extract()`. Full description

#### Versions affectées

- Django 3.1 (patch)
- Django 3.0 (patch)
- Django 2.2 (patch)

### February 19, 2021 - CVE-2021-23336

Web cache poisoning via `django.utils.http.limited_parse_qsl()`. Full description

#### Versions affectées

- Django 3.2 (patch)
- Django 3.1 (patch)
- Django 3.0 (patch)
- Django 2.2 (patch)

### April 6, 2021 - CVE-2021-28658

Potential directory-traversal via uploaded files. Full description

#### Versions affectées

- Django 3.2 (patch)
- Django 3.1 (patch)
- Django 3.0 (patch)
- Django 2.2 (patch)