Django vulnerable to SQL injection via _connector keyword argument in QuerySet and Q objects.
Critical severity
GitHub Reviewed
Published
Nov 5, 2025
to the GitHub Advisory Database
•
Updated Nov 5, 2025
Package
Affected versions
>= 5.2a1, < 5.2.8
>= 5.0a1, < 5.1.14
< 4.2.26
Patched versions
5.2.8
5.1.14
4.2.26
Description
Published by the National Vulnerability Database
Nov 5, 2025
Published to the GitHub Advisory Database
Nov 5, 2025
Reviewed
Nov 5, 2025
Last updated
Nov 5, 2025
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(), andQuerySet.get(), and the classQ(), are subject to SQL injection when using a suitably crafted dictionary, with dictionary expansion, as the_connectorargument.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.
References