Description
An issue was discovered in 5.1 before 5.1.14, 4.2 before 4.2.26, and 5.2 before 5.2.8. The methods `QuerySet.filter()`, `QuerySet.exclude()`, and `QuerySet.get()`, and the class `Q()`, are subject to SQL injection when using a suitably crafted dictionary, with dictionary expansion, as the `_connector` argument. Earlier, unsupported Django series (such as 5.0.x, 4.1.x, and 3.2.x) were not evaluated and may also be affected. Django would like to thank cyberstan for reporting this issue.
Problem types
CWE-89 Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
Product status
5.2 (semver) before 5.2.8
5.2.8 (semver)
5.1 (semver) before 5.1.14
5.1.14 (semver)
4.2 (semver) before 4.2.26
4.2.26 (semver)
Timeline
| 2025-10-20: | Initial report received. |
| 2025-10-20: | Vulnerability confirmed. |
| 2025-11-05: | Security release issued. |
Credits
cyberstan
Jacob Walls
Natalia Bidart
References
shivasurya.me/...07/django-sql-injection-CVE-2025-64459.html
docs.djangoproject.com/en/dev/releases/security/ (Django security archive)
groups.google.com/g/django-announce (Django releases announcements)
www.djangoproject.com/weblog/2025/nov/05/security-releases/ (Django security releases issued: 5.2.8, 5.1.14, and 4.2.26)