由于一个高级漏洞,容器安全状态不会在 Gitlab 管道中传递。这个漏洞是 jwt-go,它的安装版本是v3.2.0+incompatible
. 像这样的错误标题:jwt-go: access restriction bypass vulnerability-->avd.aquasec.com/nvd/cve-2020-26160
. 相关 repo 的 Go 版本是1.16.3
. 如何修复此漏洞?
问问题
478 次
2 回答
2
CVE-2020-26160漏洞是由于错误dgrijalva/jwt-go
地将 JWTaud
字段建模为string
,当基于JWT 规范时,它应该是一段字符串。
在一般情况下,“aud”值是区分大小写的字符串数组
你不能自己绕过它,因为它是库中的一个错误:https ://github.com/dgrijalva/jwt-go/issues/428
切换到官方社区fork golang-jwt/jwt
,v3.2.1
修复漏洞:https ://github.com/golang-jwt/jwt/releases/tag/v3.2.1
- 导入路径更改:有关更新代码的提示,请参阅 MIGRATION_GUIDE.md 将导入路径从 github.com/dgrijalva/jwt-go 更改为 github.com/golang-jwt/jwt
- 修复了 VerifyAudience (#12) 中 string 和 []string 之间的类型混淆问题。这修复了 CVE-2020-26160
于 2021-08-03T12:51:06.593 回答
0
github.com/dgrijalva/jwt-go 25 天前解决了这个漏洞,您使用的版本(v3.2.0)是 2018 年的,更新为使用该库的最新版本应该可以解决所有 jwt 安全问题
于 2021-08-04T13:22:08.467 回答