Impact
joserfc, a Python library for JOSE, was missing validation for the HMAC key used during token verification. An attacker can supply an empty string or None as the signing key, allowing the library to verify HMAC‑signed tokens that were forged. The JWT can be accepted without a valid signature, giving attackers the ability to impersonate any user or obtain unauthorized access categorized under), CWE‑287 (Improper Authentication), and CWE‑326 (Insufficient Key Size).
Affected Systems
The vulnerability affects all installations of the authlib:joserfc library prior to version 1.6.8. Systems that import joserfc for decoding and use older releases are at risk. Any Python application that relies on this library for authentication or authorization could be compromised if the vulnerable version is in use.
Risk and Exploitability
The CVSS score of 8.7 classifies this flaw as high severity, indicating a substantial impact when exploited. The EPSS score is less than 1%, suggesting low current exploitation probability, and it is not listed in CISA’s KEV catalog. It is inferred from the description that attackers can achieve authentication bypass by supplying an empty or None key when calling joserfc.jwt.decode. The likely attack vector is straightforward: an attacker crafts a JWT with a valid header and payload, provides a None or empty key to the library, and the application will accept the token as authentic. Because the flaw allows forging of tokens without needing to know the real key, the risk is significant for any service that trusts joserfc for authentication.
OpenCVE Enrichment
Github GHSA