Katalog CVE

CVE-2026-114137

WysokieCVSS 7.4
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.35%

Percentyl 27 - wyżej niż 27% wszystkich znanych CVE

Streszczenie

W Django REST framework od wersji 3.12.0 do 3.18.2 metoda TokenProxy.delete() używa identyfikatora użytkownika jako klucza głównego, podczas gdy rzeczywiste wiersze identyfikuje ciąg tokena, przez co Django wykonuje zapytanie usuwające, które nie pasuje do żadnego wiersza i zgłasza zero usunięć bez błędu. Aplikacje lub skrypty unieważniające poświadczenia przez TokenProxy mogą sądzić, że token został unieważniony, podczas gdy pozostaje on aktywny i nadal uwierzytelnia, a tokeny DRF nie wygasają automatycznie.

Ocena ryzyka

Unieważnione tokeny mogą pozostać aktywne bezterminowo, umożliwiając nieautoryzowany dostęp osobom posiadającym przechwycony lub wyciekły token.

Rekomendacja

Zaktualizuj Django REST framework do wersji 3.18.2 lub nowszej. Sprawdź i ręcznie usuń tokeny, które miały zostać unieważnione przez TokenProxy.

Inne podatności w Django REST framework

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

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.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS