CVE-2025-64459: Potential SQL injection via _connector keyword argument in QuerySet and Q objects
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.
Affected Software
Event History
Frequently Asked Questions
What is the severity of CVE-2025-64459?
CVE-2025-64459 has a high severity due to its potential for SQL injection vulnerabilities in certain Django versions.
How do I fix CVE-2025-64459?
To fix CVE-2025-64459, upgrade Django to version 5.1.14, 4.2.26, or 5.2.8 or later.
Which Django versions are affected by CVE-2025-64459?
CVE-2025-64459 affects Django versions prior to 5.1.14, 4.2.26, and 5.2.8.
What types of methods in Django are impacted by CVE-2025-64459?
The methods impacted by CVE-2025-64459 include QuerySet.filter(), QuerySet.exclude(), QuerySet.get(), and the class Q().
What is the nature of the vulnerability in CVE-2025-64459?
CVE-2025-64459 is a SQL injection vulnerability that occurs when using dictionary expansion with certain QuerySet methods.