Skip to content
Heist/ feed
Back to feed
HighFix available

djangorestframework — security advisory

Type: advisorySources: OSVAdvisory ID: DEBIAN-CVE-2026-114137

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.

Products
djangorestframework
Affected versions
3.14.0-2, 3.14.0-2+deb12u1, 3.15.1-1, 3.15.1-2, 3.15.2-1, 3.15.2-2, 3.16.0-1, 3.16.1-1, 3.16.1-3, 3.16.1-4, 3.17.1+ds1-1, 3.17.1-1, 3.18.1+ds1-1, 3.18.3+ds1-1
Fixed versions
3.18.3+ds1-1
CVEs
CVE-2026-114137
Confirmed fixed CVEs
Not specified
Updated in this feed
1 Nov 2026, 04:09 UTC · Revision 1

Source evidence

DEBIAN-CVE-2026-114137

core-osv · Original source

Published 21 Oct 2026, 21:17 UTC

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.

osv:DEBIAN-CVE-2026-114137

djangorestframework

Fixed versions: Not specified

djangorestframework

Fixed versions: Not specified

djangorestframework

Fixed versions: 3.18.3+ds1-1

Complete source record
{
  "id": "8fbe63c65bdb1c8add3a2d63e09cf9e53ba6e76ba5bf09eb58837ab4240191c5",
  "url": "https://osv.dev/vulnerability/DEBIAN-CVE-2026-114137",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "DEBIAN-CVE-2026-114137",
    "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.",
    "evidence": "osv:DEBIAN-CVE-2026-114137",
    "products": [
      {
        "name": {
          "value": "djangorestframework",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "3.14.0-2",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "3.14.0-2+deb12u1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "3.15.1-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "3.15.1-2",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "3.15.2-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "3.15.2-2",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "3.16.0-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "3.16.1-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "3.16.1-3",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "3.16.1-4",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "3.17.1+ds1-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "3.17.1-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "3.18.1+ds1-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "3.18.3+ds1-1",
            "evidence": "/affected/0/versions"
          }
        ]
      },
      {
        "name": {
          "value": "djangorestframework",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "3.16.0-1",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "3.16.1-1",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "3.16.1-3",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "3.16.1-4",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "3.17.1+ds1-1",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "3.17.1-1",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "3.18.1+ds1-1",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "3.18.3+ds1-1",
            "evidence": "/affected/1/versions"
          }
        ]
      },
      {
        "name": {
          "value": "djangorestframework",
          "evidence": "/affected/2/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "3.18.3+ds1-1",
            "evidence": "/affected/2/ranges"
          }
        ],
        "affected_versions": [
          {
            "value": "3.16.0-1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "3.16.1-1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "3.16.1-3",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "3.16.1-4",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "3.17.1+ds1-1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "3.17.1-1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "3.18.1+ds1-1",
            "evidence": "/affected/2/versions"
          }
        ]
      }
    ],
    "severity": "high",
    "structured": {
      "id": "DEBIAN-CVE-2026-114137",
      "aliases": [
        "DEBIAN-CVE-2026-114137"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "djangorestframework",
            "purl": "pkg:deb/debian/djangorestframework?arch=source&distro=bookworm",
            "ecosystem": "Debian:12"
          },
          "versions": [
            "3.14.0-2",
            "3.14.0-2+deb12u1",
            "3.15.1-1",
            "3.15.1-2",
            "3.15.2-1",
            "3.15.2-2",
            "3.16.0-1",
            "3.16.1-1",
            "3.16.1-3",
            "3.16.1-4",
            "3.17.1+ds1-1",
            "3.17.1-1",
            "3.18.1+ds1-1",
            "3.18.3+ds1-1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2026-114137.json"
          },
          "ecosystem_specific": {
            "urgency": "not yet assigned"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "djangorestframework",
            "purl": "pkg:deb/debian/djangorestframework?arch=source&distro=trixie",
            "ecosystem": "Debian:13"
          },
          "versions": [
            "3.16.0-1",
            "3.16.1-1",
            "3.16.1-3",
            "3.16.1-4",
            "3.17.1+ds1-1",
            "3.17.1-1",
            "3.18.1+ds1-1",
            "3.18.3+ds1-1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2026-114137.json"
          },
          "ecosystem_specific": {
            "urgency": "not yet assigned"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "3.18.3+ds1-1"
                }
              ]
            }
          ],
          "package": {
            "name": "djangorestframework",
            "purl": "pkg:deb/debian/djangorestframework?arch=source&distro=forky",
            "ecosystem": "Debian:14"
          },
          "versions": [
            "3.16.0-1",
            "3.16.1-1",
            "3.16.1-3",
            "3.16.1-4",
            "3.17.1+ds1-1",
            "3.17.1-1",
            "3.18.1+ds1-1"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/debian-osv/debian-cve-osv/DEBIAN-CVE-2026-114137.json"
          },
          "ecosystem_specific": {
            "urgency": "not yet assigned"
          }
        }
      ],
      "modified": "2026-10-24T09:47:35.694455835Z",
      "provider": "osv",
      "upstream": [
        "CVE-2026-114137"
      ],
      "references": [
        "https://security-tracker.debian.org/tracker/CVE-2026-114137"
      ]
    },
    "related_cves": [
      {
        "value": "CVE-2026-114137",
        "evidence": "/upstream"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 429041,
  "published_at": "2026-10-21T21:17:56.057+00:00"
}