2.2
CVSS V3
PyJWT Issuer field partial matches allowed
The wrong string if check is run for iss
checking, resulting in "acb"
being accepted for "_abc_"
.
This is a bug introduced in version 2.10.0: checking the "iss" claim
changed from isinstance(issuer, list)
to isinstance(issuer, Sequence)
.
Since str is a Sequnce, but not a list, in
is also used for string
comparison. This results in if "abc" not in "__abcd__":
being
checked instead of if "abc" != "__abc__":
.
Check out the unit tests added here: https://github.com/jpadilla/pyjwt-ghsa-75c5-xw7c-p5pm
I would say the real world impact is not that high, seeing as the signature still has to match. We should still fix it.