Home

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. `FilteredRelation` is subject to SQL injection in column aliases via control characters, using a suitably crafted dictionary, with dictionary expansion, as the `**kwargs` passed to `QuerySet` methods `annotate()`, `aggregate()`, `extra()`, `values()`, `values_list()`, and `alias()`. 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.

PUBLISHED Reserved 2026-01-21 | Published 2026-02-03 | Updated 2026-02-03 | Assigner DSF

Problem types

CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')

Product status

Default status
unaffected

6.0 (semver) before 6.0.2
affected

6.0.2 (semver)
unaffected

5.2 (semver) before 5.2.11
affected

5.2.11 (semver)
unaffected

4.2 (semver) before 4.2.28
affected

4.2.28 (semver)
unaffected

Timeline

2026-01-12:Initial report received.
2026-01-26:Vulnerability confirmed.
2026-02-03:Security release issued.

Credits

Solomon Kebede reporter

Jake Howard remediation developer

Jacob Walls coordinator

References

docs.djangoproject.com/en/dev/releases/security/ (Django security archive) vendor-advisory

groups.google.com/g/django-announce (Django releases announcements) mailing-list

www.djangoproject.com/weblog/2026/feb/03/security-releases/ (Django security releases issued: 6.0.2, 5.2.11, and 4.2.28) vendor-advisory

cve.org (CVE-2026-1287)

nvd.nist.gov (CVE-2026-1287)

Download JSON