由于存在一个高级漏洞,容器安全状态未在 Gitlab 管道中传递。该漏洞为jwt-go,安装版本为v3.2.0+inknown
。错误标题如下:jwt-go:访问限制绕过漏洞-->avd.aquasec.com/nvd/cve-2020-26160
。相关存储库的 Go 版本是 1.16.3
。如何修复此漏洞?
最佳答案
CVE-2020-26160漏洞是由于以下事实造成的:当基于 JWT specs 时,dgrijalva/jwt-go
错误地将 JWT aud
字段建模为 string
。它应该是一段字符串。
In the general case, the "aud" value is an array of case-sensitive strings
你自己无法绕过它,因为这是库中的一个错误:https://github.com/dgrijalva/jwt-go/issues/428
切换到official社区 fork golang-jwt/jwt
,其v3.2.1
修复了漏洞:https://github.com/golang-jwt/jwt/releases/tag/v3.2.1
- Import Path Change: See MIGRATION_GUIDE.md for tips on updating your code Changed the import path from github.com/dgrijalva/jwt-go to github.com/golang-jwt/jwt
- Fixed type confusion issue between string and []string in VerifyAudience (#12). This fixes CVE-2020-26160
关于go - 如何绕过 dgrijalva/jwt-go 中的 cve-2020-26160 漏洞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68635707/