CVE-2022-22976: BCrypt 在工作因子为 31 时跳过盐轮次

中等 | 2022 年 5 月 17 日 | CVE-2022-22976

描述

Spring Security 5.5.x 系列(5.5.7 之前版本)、5.6.x 系列(5.6.4 之前版本)以及更早的不受支持版本包含一个整数溢出漏洞。当 BCrypt 类使用最大工作因子 (31) 时,由于整数溢出错误,编码器不执行任何盐值轮次。

默认设置不受此 CVE 影响。

仅在 BCryptPasswordEncoder 配置了最大工作因子的情况下才会受到影响。由于当前计算机硬件的限制,使用如此高的工作因子在计算上是不切实际的。

您需要使用工作因子为 31 的 BCrypt 才能受到影响。您可以使用以下缓解工具检查您的密码是否受到影响。

受影响的 Spring 产品和版本

  • Spring Security
    • 5.5.x 5.5.7 之前
    • 5.6.x 5.6.4 之前
    • 更早的不受支持版本

缓解措施

在更新到最新版本之前,请更新您的 BCryptPasswordEncoder 以使用较少的轮次。在撰写本文时,OWASP 建议值为 10。

然后,使用上述引用的缓解工具更新您的密码哈希。

更新密码哈希后,您应该按照以下方式更新您的版本:5.5.x 用户应升级到 5.5.7,5.6.x 用户应升级到 5.6.4,或者用户应升级到 5.7.0。升级 Spring Security 依赖项后,您应该建议受影响的用户更改其密码。

缓解措施常见问题解答也可在缓解工具中找到。

已修复此问题的发布版本包括

  • Spring Security
    • 5.5.7
    • 5.6.4
    • 5.7.0

致谢

此问题由 Eyal Kaspi 发现并负责任地报告。

参考资料

历史

  • 2022-05-17:首次发布漏洞报告。

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有