Skip to content
Fencer Vulns
medium 4.3

CVE-2026-87975 json

Privilege abuse in model formsets with editable primary keys

published 2026-10-06 33 d ago modified 2026-10-06 33 d ago also EUVD-2026-93396

cvss
4.3
version 3.1, CNA
cisa kev
Not listed
not in CISA's catalog
epss
0.2%
EPSS 0.2% chance of exploitation in 30 days, percentile 13%
public exploits
0
none known

Summary

An issue was discovered in Django 6.1 before 6.1.2, 6.0 before 6.0.9, and 5.2 before 5.2.18. `django.forms.models.BaseModelFormSet.save_existing_objects()` used the presence of a primary key on a submitted form's instance as evidence that the instance belonged to the formset's limiting queryset. An object outside that queryset is represented by a newly constructed instance whose primary key can still be populated from submitted data when the model's primary key is a field accepted by the form, such as a `OneToOneField` or parent link used as the primary key of an inline formset's model, or a natural or UUID primary key included in the form's fields. This allows an authenticated user permitted to submit such a formset to delete rows outside the limiting queryset, without any permission on the targeted object, via forged management-form data marking an out-of-queryset object for deletion. Models using the default AutoField primary key are not affected. Earlier, unsupported Django series (such as 5.1.x, 5.0.x, and 4.2.x) were not evaluated and may also be affected. Django would like to thank Seonggwon Yoon for reporting this issue.

Patch / fix

  • djangoproject Django 5.2.18, 6.0.9, 6.1.2
  • python-django Debian 12 3:3.2.25-0+deb12u6

debian advisories DEBIAN-CVE-2026-87975

  • python-Django SLE Module for Package Hub 15 SP7 4.2.11-150600.3.68.1

suse advisories SUSE-SU-2026:4626-1

  • python-Django openSUSE Leap 16.0 5.2.4-bp160.12.1
  • python-Django openSUSE Tumbleweed 6.1.2-1.1
  • python-Django5 openSUSE Tumbleweed 5.2.18-1.1
  • python-Django4 openSUSE Tumbleweed 4.2.30-6.1

opensuse advisories openSUSE-SU-2026:22196-1openSUSE-SU-2026:12103-1openSUSE-SU-2026:12095-1openSUSE-SU-2026:12086-1

  • py3-django Alpine 3.24 5.2.18-r0

alpine advisories ALPINE-CVE-2026-87975

Alpine secdb © Alpine Linux, from https://secdb.alpinelinux.org via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2026-87975 updated cvss 6.5

django: Privilege abuse in model formsets with editable primary keys

  • Red Hat Ansible Automation Platform 2 python-django, python3x-django, python3.11-django, python3.12-django, automation-controller, ansible-automation-platform-24/hub-rhel8, +25 more
    affected: workaround, no fix available, no fix planned “Out of support scope”
  • Red Hat Discovery 2 discovery/discovery-server-rhel9
    affected: workaround, no fix available “Fix deferred”
  • Red Hat OpenStack Platform 13 (Queens) python-django, python2-django, python-django-bash-completion Red Hat OpenStack Platform 16.2 python-django20, python3-django20, rhosp-rhel8/openstack-horizon, python-django20-bash-completion Red Hat OpenStack Platform 17.1 python-django, python3-django, rhosp-rhel9/openstack-horizon
    affected: workaround, no fix planned “Out of support scope”
  • Red Hat OpenStack Platform 18.0 python-django, rhoso/openstack-horizon-rhel9 Red Hat Satellite 6 python-django, python2-django, python3.12-django, python-django-bash-completion, satellite/iop-advisor-backend-rhel9
    affected: workaround, no fix available “Fix deferred”
  • Red Hat Update Infrastructure 4 for Cloud Providers python-django
    affected: workaround, no fix planned “Out of support scope”
  • Red Hat Update Infrastructure 5 rhui5/rhua-rhel9, rhui5/rhua-tp-rhel9 Red Hat Self-service automation portal 2 ansible-automation-platform/bootc-automation-portal-rhel9
    affected: workaround, no fix available “Fix deferred”

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

CISA SSVC

Exploitation
none
Automatable
no
Technical impact
partial
Assessed
33 d ago

Exploit prediction

0.23% chance of exploitation in the next 30 days, higher than 13% of all scored CVEs (FIRST EPSS, 2026-11-08).

CVSS scores

assigned by version score vector
CNA 3.1 4.3 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N
CNA 4.0 5.3 CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
CNA 4.0 5.3 CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

Affected products

  • djangoproject Django

Classification

Weakness
  • CWE-639 Authorization Bypass Through User-Controlled Key
Technology feeds

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.