AI驱动的设计应用
新思科技网络安全研究中心(CyRC)研究人员发现了CVE-2020-28052漏洞,即广泛使用的Java密码库Bouncy Castle中的OpenBSDBcrypt类的绕过身份验证的漏洞。
该类实现了用于密码哈希的Bcrypt算法。攻击者可以在使用Bouncy Castle的OpenBSDBcrypt类的应用程序中绕过密码检查。
在提交(00dfe74aeb4f6300dd56b34b5e6986ce6658617e)中引入了OpenBSDBcrypt.doCheckPassword方法中的该漏洞。
doCheckPassword方法的验证程序实现是有缺陷的。该代码检查值为0到59(包括0和59)字符在字符串中的索引,而不是检查在字符串中0到59之间位置的字符值是否匹配。这意味着一系列密码,其生成的哈希(例如,哈希值不包含介于0x00和0x3B之间的字节)会与其它不包含这些字节的密码哈希匹配。通过此检查意味着攻击者不需要与存储的哈希值逐字节匹配。
在使用Bcrypt.doCheckPassword()检查密码的大多数情况下,成功地利用漏洞将绕过身份验证。
攻击者必须尝试暴力破解密码,直到触发绕过身份验证。我们的实验表明,20%的测试密码在1,000次内尝试中被成功绕过。某些密码哈希需要进行更多尝试,具体取决于字符值在0到60之间(1到59)的字节数。此外,我们的调查表明,通过足够的尝试可以绕过所有密码哈希。在极少数情况下,任何输入都可以绕过一些密码哈希。
CVE-2020-28052漏洞影响了Bouncy Castle 1.65(发布于2020年3月31日)和Bouncy Castle 1.66(发布于7/4/2020)。
Bouncy Castle 1.67(发布于2020年11月1日)修复了此漏洞。 1.65之前的版本不受CVE-2020-28052漏洞的影响。
注:基于漏洞披露,新思科技研究了其产品,发现在该披露发布之时没有产品使用过Bouncy Castle版本1.65或1.66。
基于t哈希的Bcryp身份验证可应用在身份验证检查,如在Web应用程序和API中身份验证检查。
Bouncy Castle是一个软件库。在确定通用漏洞评分系统(CVSS)分数时,假定了以下最坏情况(遵循FIRST CVSS软件库评分准则):
Bcrypt哈希用于检查用户提供的密码。一旦触发了绕过身份验证,攻击者就可以执行与合法用户相同的操作(例如,获得SSO(single-sign-on,单次登录系统)管理员级别的访问权限)。
Vector: AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:H/E:P/RL:O/RC:C
评分: 8.1
漏洞可利用性指标:
影响指标:
强烈建议该库的软件供应商和用户升级到Bouncy Castle Java版本1.67或更高版本。
一组位于芬兰奥卢的新思科技网络安全研究中心的研究人员发现了此漏洞:Matti Varanka,Tero Rontti
新思科技感谢Bouncy Castle团队及时地响应并修复此漏洞。
原文链接:https://www.synopsys.com/blogs/software-security/cve-2020-28052-bouncy-castle/