Skip to main content
← All vulnerabilities
CVE-2026-114137GHSA-XW6W-GCFP-CF8MEUVD-2026-107547

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

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 3.18.2
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: no
  • Technical impact: total

Summary

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.

Timeline

  1. CVE published
  2. First seen by cve.now
  3. CISA SSVC assessment

    Exploitation: none · Automatable: no · Technical impact: total

  4. Record last updated

Affected versions

  • encode django-rest-framework

    From 3.12.0 · fixed in 3.18.2

  • djangorestframeworkPyPI

    From 3.12.0 · fixed in 3.18.2

References 3

GitHub · encode/django-rest-framework