Description
An issue was discovered in 6.0 before 6.0.2, 5.2 before 5.2.11, and 4.2 before 4.2.28. `.QuerySet.order_by()` is subject to SQL injection in column aliases containing periods when the same alias is, using a suitably crafted dictionary, with dictionary expansion, used in `FilteredRelation`. 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 Solomon Kebede for reporting this issue.
Problem types
CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
Product status
6.0 (semver) before 6.0.2
6.0.2 (semver)
5.2 (semver) before 5.2.11
5.2.11 (semver)
4.2 (semver) before 4.2.28
4.2.28 (semver)
Timeline
| 2026-01-12: | Initial report received. |
| 2026-01-26: | Vulnerability confirmed. |
| 2026-02-03: | Security release issued. |
Credits
Solomon Kebede
Jacob Walls
Jacob Walls
References
docs.djangoproject.com/en/dev/releases/security/ (Django security archive)
groups.google.com/g/django-announce (Django releases announcements)
www.djangoproject.com/weblog/2026/feb/03/security-releases/ (Django security releases issued: 6.0.2, 5.2.11, and 4.2.28)