Mend.io Vulnerability Database
The largest open source vulnerability database
What is a Vulnerability ID?
New vulnerability? Tell us about it!
CVE-2024-51744
November 04, 2024
golang-jwt is a Go implementation of JSON Web Tokens. Unclear documentation of the error behavior in "ParseWithClaims" can lead to situation where users are potentially not checking errors in the way they should be. Especially, if a token is both expired and invalid, the errors returned by "ParseWithClaims" return both error codes. If users only check for the "jwt.ErrTokenExpired " using "error.Is", they will ignore the embedded "jwt.ErrTokenSignatureInvalid" and thus potentially accept invalid tokens. A fix has been back-ported with the error handling logic from the "v5" branch to the "v4" branch. In this logic, the "ParseWithClaims" function will immediately return in "dangerous" situations (e.g., an invalid signature), limiting the combined errors only to situations where the signature is valid, but further validation failed (e.g., if the signature is valid, but is expired AND has the wrong audience). This fix is part of the 4.5.1 release. We are aware that this changes the behaviour of an established function and is not 100 % backwards compatible, so updating to 4.5.1 might break your code. In case you cannot update to 4.5.0, please make sure that you are properly checking for all errors ("dangerous" ones first), so that you are not running in the case detailed above.
Affected Packages
github.com/golang-jwt/jwt/v4 (GO):
Affected version(s) >=v1.0.0 <v4.5.1
Fix Suggestion:
Update to version v4.5.1
Do you need more information?
Contact Us
CVSS v4
Base Score:
2.3
Attack Vector
NETWORK
Attack Complexity
HIGH
Attack Requirements
NONE
Privileges Required
NONE
User Interaction
PASSIVE
Vulnerable System Confidentiality
LOW
Vulnerable System Integrity
NONE
Vulnerable System Availability
NONE
Subsequent System Confidentiality
NONE
Subsequent System Integrity
NONE
Subsequent System Availability
NONE
CVSS v3
Base Score:
3.1
Attack Vector
NETWORK
Attack Complexity
HIGH
Privileges Required
NONE
User Interaction
REQUIRED
Scope
UNCHANGED
Confidentiality
LOW
Integrity
NONE
Availability
NONE
Weakness Type (CWE)
Improper Handling of Exceptional Conditions
Improper Verification of Cryptographic Signature
EPSS
Base Score:
0.04