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