CVE Tools

CVE-2026-87975

Privilege abuse in model formsets with editable primary keys

No known exploitation. EPSS puts it in the 14th percentile. Fixed versions are out.

Check it yourself

OpenVAS · 13 checks

e.g. OID 1.3.6.1.4.1.25623.1.0.158131

Run the check

Published Updated Sources: CVE.org, NVD

What to do

Find your product and version, then upgrade to the build on the right.

  • djangoproject DjangoAffected: ≥ 6.1, < 6.1.2Upgrade to: 6.1.2Affected: ≥ 6.0, < 6.0.9Upgrade to: 6.0.9Affected: ≥ 5.2, < 5.2.18Upgrade to: 5.2.18Stated by: CVE record

Versions as the sources state them. Full version matrix after sign-in

What it is

From the CVE record

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.

In plain language

No plain-language summary for this CVE yet.

Exploitation

Where each signal puts this CVE on the scale from published to confirmed exploited.

EPSS14th
CISA KEV

Not in the catalog. CISA has not confirmed exploitation.

Public exploits

No public exploit or proof of concept found in the sources we track.

EPSS

0.2% chance of exploitation activity in the next 30 days, which ranks it in the 14th percentile of scored CVEs.

Exploit Prediction Scoring System, FIRST.org. A probability, not a confirmation.

Lifecycle

5 events over 16 days, from the signal feeds we watch.

  1. OpenVAS check added
  2. Publishedweakness classified, att&ck mapped, record updated

Affected products

Scale

How widely the affected products are used. This is not a count of vulnerable hosts.

Estimate Public sources, each figure dated. How much of it is already patched is not known.

Django

Library
  • 41.1Mdownloads / month

    PyPI downloads, last 30 days (pypistats, mirrors excluded).

    PyPI ↗ · as of 2 Nov 2026 · High confidence

Version split: unknown. No public source for this product.

Technical detail

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N

Scored 4.3 by NVD.

How it is reached

  • Attack Vector NetworkExploitable remotely over the network without any special conditions
  • Attack Complexity LowNo special conditions — the attack can be reliably reproduced
  • Privileges Required LowRequires basic user-level privileges
  • User Interaction NoneNo user interaction needed — fully automated exploitation

Scope

  • Scope UnchangedImpact is limited to the vulnerable component itself

Impact if exploited

  • Confidentiality NoneNo confidentiality impact
  • Integrity LowData modification is possible but limited in scope or consequence
  • Availability NoneNo availability impact

Weaknesses

ATT&CK techniques

Mapped from the weaknesses above (CWE to ATT&CK), not observed in attacks.

Sources

Watch the software you run.

My Stack ranks new CVEs for your products by real-world exploitation, so the next serious one reaches you without reading every advisory.

We'll flag the next CVE, public exploit or patch for Django, not every advisory.