CVE-2026-114137

Django REST framework: TokenProxy.delete() reports success and revokes nothing

State
Published
Severity
7.4 High
Published
Oct 21, 2026
Updated
Oct 23, 2026
Reserved
Oct 20, 2026

Read the record on cve.org

Description

Django REST framework is a toolkit for building Web APIs. From 3.12.0 until 3.18.2, TokenProxy.delete() in rest_framework/authtoken/models.py uses the proxy's user-id pk while the concrete Token token-string primary key identifies rows, so Django issues a deletion query that matches no row and reports zero deletions without raising an error. Applications, administrative integrations, or operational scripts that revoke credentials through a TokenProxy instance can therefore believe revocation succeeded while the token remains live and continues authenticating. DRF's own TokenAdmin.delete_model workaround is not affected, but other callers can leave access available indefinitely because DRF tokens do not expire automatically. This issue is fixed in version 3.18.2.

Scores

CVSSScoreVectorSource
3.17.4 HighCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:NGitHub_M

Weaknesses

  • CWE-390 Detection of Error Condition Without Action
  • CWE-613 Insufficient Session Expiration

Affected Products

ProductVersions
django-rest-frameworkencode
  • >= 3.12.0, < 3.18.2Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.