Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2024-51744— Bad documentation of error handling in ParseWithClaims can lead to potentially dangerous situations in golang-jwt

Quick assessment

Affected
golang-jwt jwt
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

jwt-go是golang-jwt开源的一个Go语言的JWT实现。 jwt-go 4.5.0及之前版本存在安全漏洞,该漏洞源于ParseWithClaims中错误行为的不明确留档,会导致用户无法以应有的方式检查错误。

CVSS 3.1 · Low EPSS 0.54% · P45
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2024-51744

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
Bad documentation of error handling in ParseWithClaims can lead to potentially dangerous situations in golang-jwt
Source: CVE Program / CVE List V5
Vulnerability Description
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.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:N/A:N
Source: CVE Program / CVE List V5
Vulnerability Type
对异常条件的处理不恰当
Source: CVE Program / CVE List V5
Vulnerability Title
jwt-go 安全漏洞
Source: CNNVD (China National Vulnerability Database)
Vulnerability Description
jwt-go是golang-jwt开源的一个Go语言的JWT实现。 jwt-go 4.5.0及之前版本存在安全漏洞,该漏洞源于ParseWithClaims中错误行为的不明确留档,会导致用户无法以应有的方式检查错误。
Source: CNNVD (China National Vulnerability Database)
CVSS Information
N/A
Source: CNNVD (China National Vulnerability Database)
Vulnerability Type
N/A
Source: CNNVD (China National Vulnerability Database)

Affected Products

Vendor Product Affected Versions CPE Subscribe
golang-jwt jwt < 4.5.1 -

II. Public POCs for CVE-2024-51744

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2024-51744

请登录查看更多情报信息。

Vendor Advisories for CVE-2024-51744 (1)

IV. Related Vulnerabilities