CVE intelligence and bounded remediation
CVE-2026-1287 — An issue was discovered in 6.0 before 6.0.2, 5.2 before 5.2.11, and 4.2 before 4.2.28
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.
- Severity
- High
- CVSS
- 8.3 (3.1)
- Published
- 2026-02-03
- CISA KEV
- Not currently listed
- Ecosystem
- software/application
- Weaknesses
- CWE-89
Affected products
- djangoproject / django
Matched remediation archetype
SQL and data-query injection
This catalog composition supplies bounded fallback guidance. Explicitly reviewed curated workflows load with the complete record below.
Check exposure
- Trace request, message, file, and stored values into SQL, ORM query fragments, filters, sort expressions, and other data-query languages.
- Inventory database roles, reachable schemas, multi-tenant boundaries, and whether stacked or administrative operations are enabled.
- Check both direct queries and second-order use of previously stored values.
Remediate safely
- Use parameterized queries or safe query builders for all values; map identifiers and operators through explicit allowlists.
- Remove raw query concatenation and give the application account only the tables and operations it requires.
- Update affected data-access components and add regression tests for query structure preservation with inert edge-case inputs.
Authoritative sources
Complete CVE record and remediation plan
The detailed catalog view below loads this exact record, its source evidence, and the full seven-phase agentic change plan.