---
id: CVE-2026-1287
title: >-
  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 expansio…
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.

  `FilteredRelation` is subject to SQL injection in column aliases via control
  characters, using a suitably crafted dictionary, with dictionary expansio…
severity: medium
cvss: 5.4
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:N'
cwe:
  - CWE-89
vendor: djangoproject
product: django
affected:
  - 'django >= 4.2, < 4.2.28'
  - 'django >= 5.2, < 5.2.11'
  - 'django >= 6.0, < 6.0.2'
patched:
  - django 6.0.2
published: '2026-02-03'
updated: '2026-06-30'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-1287'
references:
  - url: 'https://docs.djangoproject.com/en/dev/releases/security/'
    label: 6a34fbeb-21d4-45e7-8e0a-62b95bc12c92
  - url: 'https://groups.google.com/g/django-announce'
    label: 6a34fbeb-21d4-45e7-8e0a-62b95bc12c92
  - url: 'https://www.djangoproject.com/weblog/2026/feb/03/security-releases/'
    label: 6a34fbeb-21d4-45e7-8e0a-62b95bc12c92
  - url: 'https://access.redhat.com/errata/RHSA-2026:14835'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:2694'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:3958'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:3959'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:3960'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:3962'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:5970'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:5971'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/errata/RHSA-2026:6291'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://access.redhat.com/security/cve/CVE-2026-1287'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2436339'
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-1287.json
    label: 0b0ca135-0b70-47e7-9f44-1890c2a1c46c
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-1287'
  - url: >-
      https://github.com/django/django/commit/e891a84c7ef9962bfcc3b4685690219542f86a22
  - url: 'https://docs.djangoproject.com/en/dev/releases/security'
  - url: 'https://github.com/django/django'
  - url: >-
      https://github.com/pypa/advisory-database/tree/main/vulns/django/PYSEC-2026-46.yaml
  - url: 'https://www.djangoproject.com/weblog/2026/feb/03/security-releases'
tags:
  - nvd
  - osv
  - pip
epss: 0.00783
epssPercentile: 0.54071
ingestedAt: '2026-07-03T18:53:52.160Z'
aliases:
  - GHSA-gvg8-93h5-g6qq
  - BIT-django-2026-1287
  - PYSEC-2026-46
ecosystem: pip
---

## Overview

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.

## Affected

- `django >= 4.2, < 4.2.28`
- `django >= 5.2, < 5.2.11`
- `django >= 6.0, < 6.0.2`

## Remediation

Upgrade past the affected range:

- `django 6.0.2`

## Package advisory (CVE-2026-1287)

Affected packages:

- `django >= 6.0a1, < 6.0.2`
- `django >= 5.2a1, < 5.2.11`
- `django >= 4.2a1, < 4.2.28`

Patched in:

- `django 6.0.2`
- `django 5.2.11`
- `django 4.2.28`

Source: https://osv.dev/vulnerability/GHSA-gvg8-93h5-g6qq
