CVE-2025-64459 – Vulnérabilité dans l’ORM de Django


DESCRIPTION / CVE-2025-64459 – Publié le 05/11/2025

La vulnérabilité CVE-2025-64459 est une vulnérabilité critique de type « Injection SQL » (manipulation malveillante d’une requête SQL générée par l’ORM de Django et destinée à la base de données). Elle a reçu un score de 9.1/10 sur l’échelle CVSS, indiquant un niveau de sévérité CRITIQUE.

Cette faille est liée à une faiblesse dans l’ORM (Object Relational Mapper) de Django.
En pratique, la vulnérabilité permet à un utilisateur malveillant de détourner la manière dont certaines requêtes SQL sont générées, ouvrant la voie à une extraction ou une modification non autorisée de données sensibles.


Mécanisme d’exploitation

La faille repose sur cinq points :

Identification d’une entrée manipulable :
L’attaquant repère une fonctionnalité qui intègre directement des données utilisateur dans un dictionnaire transmis à l’ORM via une expansion.
Injection d’un paramètre interne :
Il introduit dans ces données un paramètre interne réservé à Django >_connector, normalement inaccessible.
Acceptation du paramètre par l’ORM :
En raison de la faille, Django ne filtre pas ce paramètre lorsqu’il provient d’un dictionnaire expansé et l’intègre dans la construction de la requête.
Altération de la logique SQL générée :
La présence de ce paramètre modifie la manière dont l’ORM assemble les conditions, entraînant la création d’une requête SQL déviée.
Exploitation de la requête modifiée :
L’attaquant profite du comportement non prévu de la requête pour contourner des restrictions ou accéder à des données sensibles.

CORRECTIFS ET RECOMMANDATIONS

Application du correctif
La vulnérabilité a été corrigée dans les versions officielles de Django. Les utilisateurs doivent mettre à jour leur framework vers les versions corrigées pour éliminer la faille.
Transmission de dictionnaires
Éviter de transmettre directement des dictionnaires contenant des données utilisateur dans les méthodes de l’ORM.
Mise en place de validation
Mettre en place une validation stricte des données pour empêcher l’introduction de paramètres inattendus.
Limitation des permissions
Limiter les permissions du compte base de données qui vise à réduire les dégâts en cas d’exploitation.
Source correctif

Dépot Github : https://github.com/django/django/commit/98e642c69181c942d60a10ca0085d48c6b3068bb

CONCLUSION ET PERSPECTIVES

La vulnérabilité CVE‑2025‑64459 montre qu’une faille peut exister même dans des composants réputés sûrs comme l’ORM de Django. Elle illustre que la sécurité d’un framework ne garantit pas automatiquement la protection contre toutes les injections SQL.

Cette vulnérabilité rappelle l’importance de :

  • Maintenir les frameworks à jour.
  • Valider et filtrer les entrées utilisateur.
  • Limiter les permissions des comptes de base de données.
Sources

CVE : https://www.cve.org/CVERecord?id=CVE-2025-64459

Github Django : https://github.com/django/django/commit/98e642c69181c942d60a10ca0085d48c6b3068bb

DjangoProject : https://www.djangoproject.com/weblog/2025/nov/05/security-releases/

Exploit DATABASE : https://www.exploit-db.com/exploits/52456

NIST : https://nvd.nist.gov/vuln/detail/CVE-2025-64459