Django REST framework: TokenProxy.delete() reports success and revokes nothing
Default status is the baseline for the product, each version can override it (e.g. patched versions marked unaffected).
| Vendor | Product | Default status | Versions | ||||||
|---|---|---|---|---|---|---|---|---|---|
| encode | django-rest-framework | affected |
|
No data.
No data.
| Vendor | Product | Versions | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Encode | Django Rest Framework |
|
| Source | ID | Title |
|---|---|---|
Github GHSA |
GHSA-xw6w-gcfp-cf8m | Django REST framework: TokenProxy.delete() reports success and revokes nothing |
No CVSS v4.0
No CVSS v3.0
No CVSS v2
This CVE is not in the KEV list.
Exploit prediction score: < 1% (0.512% probability within 30 days)
| Type | Values Removed | Values Added |
|---|---|---|
| Metrics |
ssvc
|
| Type | Values Removed | Values Added |
|---|---|---|
| References |
| |
| Metrics |
threat_severity
|
threat_severity
|
| Type | Values Removed | Values Added |
|---|---|---|
| First Time appeared |
Encode
Encode django Rest Framework |
|
| Vendors & Products |
Encode
Encode django Rest Framework |
| Type | Values Removed | Values Added |
|---|---|---|
| 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. | |
| Title | Django REST framework: TokenProxy.delete() reports success and revokes nothing | |
| Weaknesses | CWE-390 CWE-613 |
|
| References |
| |
| Metrics |
cvssV3_1
|