Snyk has a proof-of-concept or detailed explanation of how to exploit this vulnerability.
The probability is the direct output of the EPSS model, and conveys an overall sense of the threat of exploitation in the wild. The percentile measures the EPSS probability relative to all known EPSS scores. Note: This data is updated daily, relying on the latest available EPSS model version. Check out the EPSS documentation for more details.
In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.
Test your applicationsUpgrade PyJWT to version 2.14.0 or higher.
PyJWT is a Python implementation of RFC 7519.
Affected versions of this package are vulnerable to Modification of Assumed-Immutable Data (MAID) in the _merge_options() method in jwt/api_jwt.py, which writes verify_exp, verify_nbf, verify_iat, verify_aud, verify_iss, verify_sub, and verify_jti directly onto the caller's options dictionary when verify_signature is falsy, with no dict(options) copy before those writes. An attacker can have an expired token, or one carrying the wrong audience, issuer, subject, or jti, accepted by a call that explicitly asks for full verification, because an earlier call sharing that same dictionary object left the claim checks switched off in it. This requires the application to reuse one mutable options dictionary across decode calls with differing intent, where an earlier call disabled signature verification and a later one requests full verification, a shape that arises with shared configuration objects or wrapper instances rather than freshly built literals.