CVE-2026-1312 Potential SQL injection via QuerySet.order_by and FilteredRelation

Medium 5.4 Published Updated

Attackers can execute SQL injection via crafted dictionary expansion in QuerySet.order_by and FilteredRelation, potentially reading or modifying database contents.

Exploited in the wild
Not known
Login needed
Any signed-in user
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2026-1312?

CVE-2026-1312 is a medium-severity SQL injection vulnerability in Djangoproject Django, published on 3 Feb 2026. Any signed-in user can exploit it over the network, with no action from the victim.

Official 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.

Weakness: CWE-89

Which versions are affected by CVE-2026-1312?

8 open source packages ship an affected version, including django and Django. It affects 1 product.

PackageAffectedFixed in
django BitnamiFrom 4.2.04.2.28, 5.2.11, 6.0.2
django PyPIFrom 4.24.2.28, 5.2.11, 6.0.2
django PyPIFrom 4.2a14.2.28
django PyPIFrom 5.2a15.2.11
django PyPIFrom 6.0a16.0.2
Django PyPIFrom 4.2a14.2.28
2 more packages
Django PyPIFrom 5.2a15.2.11
Django PyPIFrom 6.0a16.0.2

Products include Djangoproject Django.

How do I fix CVE-2026-1312?

Upgrade django to a fixed version for your release line: 4.2.28, 5.2.11 or 6.0.2.

Use parameterised queries everywhere and never build SQL by joining strings. Upgrade affected software first; a web application firewall only buys time. More about SQL injection.

Is CVE-2026-1312 being exploited?

There is no known exploitation of CVE-2026-1312 in the wild and no public exploit code.

Public exploit code: 2 proofs of concept on GitHub.

All Djangoproject Django vulnerabilities

Sources

Also known as BIT-django-2026-1312, DEBIAN-CVE-2026-1312, ECHO-e001-dbbd-1ca3, GHSA-6426-9fv3-65x8, MINI-p9gf-mr5f-p358, PYSEC-2026-47.

Is CVE-2026-1312 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free