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.
Tous les problèmes de sécurité ont été traités dans le cadre du processus de sécurité de Django. Elles sont listées ci-dessous.
Potential denial-of-service vulnerability in LoginView
, LogoutView
, and
set_language()
on Windows. Full description
Potential denial-of-service in django.utils.text.wrap()
.
Full description
Potential denial-of-service vulnerability in IPv6 validation. Full description
Potential denial-of-service in django.utils.html.strip_tags()
.
Full description
Potential SQL injection in HasKey(lhs, rhs)
on Oracle.
Full description
Potential user email enumeration via response status on password reset. Full description
Potential denial-of-service vulnerability in django.utils.html.urlize()
.
Full description
Injection SQL potentielle dans QuerySet.values()
et values_list()
. Description complète
Django 5.0 (correctif)
Django 4.2 (correctif)
Vulnérabilité potentielle de déni de service dans django.utils.html.urlize()
et AdminURLFieldWidget
. Description complète
Django 5.0 (correctif)
Django 4.2 (correctif)
Vulnérabilité potentielle de déni de service dans django.utils.html.urlize()
. Description complète
Django 5.0 (correctif)
Django 4.2 (correctif)
Épuisement de mémoire potentiel dans django.utils.numberformat.floatformat()
. Description complète
Django 5.0 (correctif)
Django 4.2 (correctif)
Déni de service potentiel dans django.utils.translation.get_supported_language_variant()
. Description complète
Django 5.0 (correctif)
Django 4.2 (correctif)
Traversée de répertoires potentielle dans django.core.files.storage.Storage.save()
. Description complète
Django 5.0 (correctif)
Django 4.2 (correctif)
Énumération de noms d’utilisateurs par des différences temporelles avec les utilisateurs sans mot de passe utilisable. Description complète
Django 5.0 (correctif)
Django 4.2 (correctif)
Déni de service potentiel dans django.utils.html.urlize()
. Description complète
Django 5.0 (correctif)
Django 4.2 (correctif)
Déni de service potentiel d’expression régulière dans django.utils.text.Truncator.words()
. Description complète
Django 5.0 (correctif)
Django 4.2 (correctif)
Django 3.2 (correctif)
Déni de service potentiel dans le filtre de gabarit intcomma
. Description complète
Django 5.0 (correctif)
Django 4.2 (correctif)
Django 3.2 (correctif)
Potential denial of service vulnerability in UsernameField
on Windows.
Full description
Denial-of-service possibility in django.utils.text.Truncator
.
Full description
Potential denial of service vulnerability in
django.utils.encoding.uri_to_iri()
. Full description
Potential regular expression denial of service vulnerability in
EmailValidator
/URLValidator
. Full description
Potential bypass of validation when uploading multiple files using one form field. Full description
Potential denial-of-service vulnerability in file uploads. Full description
Potential denial-of-service via Accept-Language
headers. Full description
Potential denial-of-service vulnerability in internationalized URLs. Full description
Potential reflected file download vulnerability in FileResponse. Full description
Potential SQL injection via Trunc(kind)
and Extract(lookup_name)
arguments. Full description
Potential SQL injection in QuerySet.annotate()
, aggregate()
, and
extra()
. Full description
Potential SQL injection via QuerySet.explain(**options)
on PostgreSQL.
Full description
Possible XSS via {% debug %}
template tag. Full description
Denial-of-service possibility in file uploads. Full description
Potential directory-traversal via Storage.save()
. Full description
Potential information disclosure in dictsort
template filter. Full
description
Denial-of-service possibility in UserAttributeSimilarityValidator
. Full
description
Potential bypass of an upstream access control based on URL paths. Full description
Potential SQL injection via unsanitized QuerySet.order_by()
input. Full
description
Potential directory traversal via admindocs
. Full description
Possible indeterminate SSRF, RFI, and LFI attacks since validators accepted leading zeros in IPv4 addresses. Full description
Possibilité d’injection dans les en-têtes depuis que URLValidator
accepte des retours à la ligne en entrée avec Python 3.9.5+. Description complète
Django 3.2 (correctif)
Django 3.1 (correctif)
Django 2.2 (correctif)
Traversée de répertoires potentielle au moyen de fichiers téléversés. Description complète
Django 3.2 (correctif)
Django 3.1 (correctif)
Django 2.2 (correctif)
Traversée de répertoires potentielle au moyen de fichiers téléversés. Description complète
Django 3.2 (correctif)
Django 3.1 (correctif)
Django 3.0 (correctif)
Django 2.2 (correctif)
Empoisonnement de cache Web via django.utils.http.limited_parse_qsl()
. Description complète
Django 3.2 (correctif)
Django 3.1 (correctif)
Django 3.0 (correctif)
Django 2.2 (correctif)
Traversée de répertoires potentielle au moyen de archive.extract()
. Description complète
Django 3.1 (correctif)
Django 3.0 (correctif)
Django 2.2 (correctif)
Élévation de privilèges dans des répertoires de niveau intermédiaire du cache sur système de fichiers avec Python 3.7+. Description complète
Django 3.1 (correctif)
Django 3.0 (correctif)
Django 2.2 (correctif)
Permissions incorrectes sur des répertoires de niveau intermédiaire avec Python 3.7+. Description complète
Django 3.1 (correctif)
Django 3.0 (correctif)
Django 2.2 (correctif)
XSS potentiel via ForeignKeyRawIdWidget
de l’admin. Description complète
Django 3.0 (correctif)
Django 2.2 (correctif)
Fuite de données potentielle via des clés memcached
mal formées. Description complète
Potential SQL injection via tolerance
parameter in GIS functions and
aggregates on Oracle. Full description
Potential SQL injection via StringAgg(delimiter)
. Full description
Potential account hijack via password reset form. Full description
Privilege escalation in the Django admin. Full description
Potential memory exhaustion in django.utils.encoding.uri_to_iri()
. Full
description
SQL injection possibility in key and index lookups for
JSONField
/HStoreField
. Full description
Denial-of-service possibility in strip_tags()
. Full description
Denial-of-service possibility in django.utils.text.Truncator
. Full
description
Incorrect HTTP detection with reverse-proxy connecting via HTTPS. Full description
XSS via « Current URL » link generated by AdminURLFieldWidget
. Full
description
Prototype pollution in bundled jQuery. Full description
Épuisement de mémoire dans django.utils.numberformat.format()
. Description complète
Django 2.1 (correctif)
Django 2.0 (correctif et correction)
Django 1.11 (correctif)
Possibilité de mystification de contenu dans la page 404 par défaut. Description complète
Django 2.1 (correctif)
Django 2.0 (correctif)
Django 1.11 (correctif)
Révélation de l’empreinte de mots de passe pour les utilisateurs du site d’administration en « lecture seule ». Description complète
Django 2.1 (correctif)
Possibilité de redirection ouverte dans CommonMiddleware
. Description complète
Django 2.1 (correctif)
Django 2.0 (correctif)
Django 1.11 (correctif)
Possibilité de déni de service dans les filtres de gabarit truncatechars_html
et truncatewords_html
. Description complète
Django 2.0 (correctif)
Django 1.11 (correctif)
Django 1.8 (correctif)
Possibilité de déni de service dans les filtres de gabarit urlize
et urlizetrunc
. Description complète
Django 2.0 (correctif)
Django 1.11 (correctif)
Django 1.8 (correctif)
Fuite d’informations dans le formulaire AuthenticationForm
. Description complète
Django 2.0 (correctif)
Django 1.11 (correctif)
Attaque XSS possible dans la section « traceback » de la page de débogage technique 500. Description complète
Django 1.11 (correctif)
Django 1.10 (correctif)
Vulnérabilité de redirection ouverte dans django.views.static.serve()
. Description complète
Django 1.10 (correctif)
Django 1.9 (correctif)
Django 1.8 (correctif)
Redirection ouverte et attaque XSS possible par des URL de redirection numériques fournis par des utilisateurs. Description complète
Django 1.10 (correctif)
Django 1.9 (correctif)
Django 1.8 (correctif)
Vulnérabilité de re-liaison DNS avec DEBUG=True
. Description complète
Django 1.10 (correctif)
Django 1.9 (correctif)
Django 1.8 (correctif)
Utilisateur avec mot de passe créé en dur lors du lancement des tests avec Oracle. Description complète
Django 1.10 (correctif)
Django 1.9 (correctif)
Django 1.8 (correctif)
Contournement de protection CSRF pour un site avec Google Analytics. Description complète
Django 1.9 (correctif)
Django 1.8 (correctif)
XSS dans les fenêtres d’ajout/modification d’éléments liés. Description complète
Django 1.9 (correctif)
Django 1.8 (correctif)
User enumeration through timing difference on password hasher work factor upgrade. Full description
Django 1.9 (patch)
Django 1.8 (correctif)
Redirection malicieuse et attaque XSS possible via des URL de redirection fournis par l’utilisateur et contenant de l’authentification basique. Description complète
Django 1.9 (correctif)
Django 1.8 (correctif)
User with « change » but not « add » permission can create objects for
ModelAdmin
’s with save_as=True
. Full description
Django 1.9 (patch)
Settings leak possibility in date
template filter. Full description
Denial-of-service possibility in logout()
view by filling session store.
Full description
Denial-of-service possibility in URL validation. Full description
Django 1.8 (patch)
Possibilité d’injection dans les en-têtes depuis que les validateurs acceptent des retours à ligne en entrée. Description complète
Denial-of-service possibility by filling session store. Full description
Fixed session flushing in the cached_db backend. Full description
Django 1.8 (patch)
Attaque XSS atténuée possible via des URL de redirection fournis par l’utilisateur. Description complète
Possibilité de déni de service avec strip_tags()
. Description complète
XSS attack via properties in ModelAdmin.readonly_fields
. Full description
Database denial-of-service with ModelMultipleChoiceField
. Full description
Denial-of-service attack against django.views.static.serve()
. Full
description
Mitigated possible XSS attack via user-supplied redirect URLs. Full description
WSGI header spoofing via underscore/dash conflation. Full description
Data leakage via querystring manipulation in admin. Full description
RemoteUserMiddleware
session hijacking. Full description
File upload denial of service. Full description
reverse()
can generate URLs pointing to other hosts. Full description
Malformed URLs from user input incorrectly validated. Full description
Caches may be allowed to store and serve private data. Full description
MySQL typecasting causes unexpected query results. Full description
Caching of anonymous pages could reveal CSRF token. Full description
Unexpected code execution using reverse()
. Full description
Denial-of-service via large passwords. Full description
Django 1.4 (patch and Python compatibility fix)
Django 1.5 (patch)
Directory-traversal via ssi
template tag. Full description
Possible XSS via unvalidated URL redirect schemes. Full description
XSS via admin trusting URLField
values. Full description
Django 1.5 (patch)
Denial-of-service via formset max_num
bypass. Full description
Information leakage via admin history log. Full description
Entity-based attacks against Python XML libraries. Full description
Additional hardening of Host
header handling. Full description
Additional hardening of redirect validation. Full description
Additional hardening of Host
header handling. Full description
Host
header poisoning. Full description
Denial-of-service via large image files. Full description
Denial-of-service via compressed image files. Full description
XSS via failure to validate redirect scheme. Full description
Potential CSRF via Host
header. Full description
This notification was an advisory only, so no patches were issued.
Django 1.2
Django 1.3
Host
header cache poisoning. Full description
Information leakage/arbitrary request issuance via URLField.verify_exists
.
Full description
Denial-of-service via URLField.verify_exists
. Full description
Session manipulation when using memory-cache-backed session. Full description
Directory-traversal on Windows via incorrect path-separator handling. Full description
XSS via unsanitized names of uploaded files. Full description
CSRF via forged HTTP headers. Full description
Denial-of-service in password-reset mechanism. Full description
Information leakage in administrative interface. Full description
XSS via trusting unsafe cookie value. Full description
Django 1.2 (patch)
Denial-of-service via pathological regular expression performance. Full description
Directory-traversal in development server media handler. Full description
CSRF via preservation of POST data during admin login. Full description
XSS via admin login redirect. Full description
Denial-of-service via arbitrarily-large Accept-Language
header. Full
description
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é.
Mise en cache apparent de l’utilisateur authentifié. Description complète
Django 0.95 (correctif)
Problème de validation de nom de fichier dans l’infrastructure des traductions. Description complète
Django 0.90 (correctif)
Django 0.91 (correctif)
Django 0.95 (correctif) (publié le 21 janvier 2007)
avr. 05, 2025