2

由于一个高级漏洞,容器安全状态不会在 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. 如何修复此漏洞?

4

2 回答 2

2

CVE-2020-26160漏洞是由于错误dgrijalva/jwt-go地将 JWTaud字段建模为string,当基于JWT 规范时,它应该是一段字符串。

在一般情况下,“aud”值是区分大小写的字符串数组

你不能自己绕过它,因为它是库中的一个错误:https ://github.com/dgrijalva/jwt-go/issues/428

切换到官方社区fork golang-jwt/jwtv3.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 回答