CVE-2020-10594
Python vulnerability analysis and mitigation

Overview

An issue was discovered in drf-jwt 1.15.x before 1.15.1 that allows attackers with access to a notionally invalidated token to obtain a new, working token via the refresh endpoint. This occurs because the blacklist protection mechanism is incompatible with the token-refresh feature. It's worth noting that drf-jwt is a fork of jpadilla/django-rest-framework-jwt, which is unmaintained (MITRE CVE).

Technical details

The vulnerability exists in the token refresh mechanism of drf-jwt. When both token blacklisting and JWT_ALLOW_REFRESH features are enabled, the system fails to properly validate blacklisted tokens during the refresh process. This allows attackers to bypass the blacklist protection by using the refresh endpoint with an invalidated token (GitHub Issue).

Impact

The vulnerability allows attackers to circumvent token invalidation mechanisms. Even when a token is blacklisted (invalidated), an attacker can use it to obtain a new, valid token through the refresh endpoint, effectively bypassing security controls meant to revoke access (MITRE CVE).

Mitigation and workarounds

The issue has been fixed in drf-jwt version 1.15.1. Users are strongly advised to upgrade to this version or later. For those unable to upgrade immediately, it's recommended to carefully consider the use of token blacklisting in combination with refresh tokens, as these features are incompatible in versions prior to 1.15.1 (MITRE CVE).

Community reactions

The vulnerability led to discussions about the maintenance status of JWT implementations in the Django ecosystem. The original django-rest-framework-jwt project was officially archived, with the maintainer recommending either the Styria-Digital fork (drf-jwt) or django-rest-framework-simplejwt as alternatives (GitHub Discussion).

Additional resources


SourceThis report was generated using AI

Related Python vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-21441HIGH8.9
  • PythonPython
  • urllib3
NoYesJan 07, 2026
CVE-2026-21851MEDIUM5.3
  • PythonPython
  • monai
NoNoJan 07, 2026
GHSA-f2mf-q878-gh58MEDIUM5.3
  • PythonPython
  • parsl
NoYesJan 06, 2026
CVE-2026-21883MEDIUM4.5
  • PythonPython
  • bokeh
NoYesJan 08, 2026
CVE-2026-22041LOW2
  • PythonPython
  • loggingredactor
NoYesJan 07, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management