Skip to main content
← All vulnerabilities
CVE-2026-1312GHSA-6426-9FV3-65X8BIT-DJANGO-2026-1312PYSEC-2026-47

Potential SQL injection via QuerySet.order_by and FilteredRelation

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 6.0.2, 5.2.11, 4.2.28
2 proofs of concept on GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: partial

Summary

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.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: partial

  3. Record last updated

Affected versions

  • django

    From 6.0 · fixed in 6.0.2; From 5.2 · fixed in 5.2.11; From 4.2 · fixed in 4.2.28

  • djangoPyPI

    From 6.0a1 · fixed in 6.0.2

  • djangoPyPI

    From 5.2a1 · fixed in 5.2.11

  • djangoPyPI

    From 4.2a1 · fixed in 4.2.28

  • djangoPyPI

    From 4.2 · fixed in 4.2.28; From 5.2 · fixed in 5.2.11; From 6.0 · fixed in 6.0.2

References 5

docs.djangoproject.com

groups.google.com

djangoproject.com

GitHub · alpinine/CVE-2026-1312-Testing

GitHub · sw0rd1ight/CVE-2026-1312