CVE-2022-21449“心灵签名”:分析新的Java加密漏洞

几天前,安全研究员尼尔·马登发表一篇博客文章,他在信中提供了一个关于最新披露的Java漏洞,cve - 2022 - 21449或“通灵信号”。这安全漏洞源于Java 15中引入的ECDSA签名验证算法的不正确实现。
此漏洞允许攻击者潜在地拦截原本应该加密的通信和消息,例如SSL通信、身份验证过程(如JWT)等等。
在这篇博文中,我们提供了关于漏洞的详细信息,它的适用性条件是什么,以及如何修复它。
什么是CVE-2022-21449?
CVE-2022-21449是椭圆曲线数字签名算法实现中的漏洞,由签名验证算法实现不当引起。实际上,它会导致内容的完整性失效,而内容的完整性是由签名保证的。这可能是SSL握手、签名、证书等,如果它们使用ECDSA的话。
签名验证算法使用一个数学方程,由签名者的公钥、消息的散列和ECDSA签名中使用的两个值组成,r而且年代.签名在以下情况下生效等式两边都是是相等的。
Java 15中引入的错误实现没有检查r而且年代所使用的值不是0,这就是问题所在。如果r而且年代允许为零,这可能导致使用它们进行乘法的方程两边都为零,从而创建一个真命题0 = 0。在这种情况下,签名将被验证,允许具有空签名(全是零)的攻击者访问应该受保护的内容。
谁会受到CVE-2022-21449的影响?
CVE-2022-21449影响Java版本15、16、17和18最初的发布.Oracle最初发布了一份关于补丁版本7、8和11的声明,暗示这些版本也容易受到攻击,但他们后来修改了该声明,包括仅受Java 15+影响。通过运行原始漏洞,可以看到15岁以上的版本不容易受到这一完全相同的问题:

注意假验证结果,表明漏洞未被成功利用。

易受攻击的Java应用程序是那些使用Java的ECDSA算法的变体的应用程序getInstance ()API签名。例如:
Signature.getInstance(“SHA256WithECDSAInP1363Format”)
JFrog x射线可以验证或排除此CVE在您的代码与我们的适用性语境分析特性,它对扫描的项目执行代码分析,并能够检测到对getInstance ()使用ECDSA算法,并报告漏洞的适用性:
" cve -202 -21449": CodeScanner(ScannerType.JAR, GadgetFactoid(Pipe(Callsites("java/security/Signature", "getInstance"), CallArgumentMatcherRegex({1: ".*withECDSA.*"})), "java ECDSA签名{未}使用",),[b"withECDSA"],),
我们建议您使用我们的开源软件工具以确定您的应用程序是否容易受到CVE-2022-21449的攻击。
获取OSS工具JFrog平台易受CVE-2022-21449攻击吗?
经过全面的内部检查,我们得出结论JFrog DevOps平台不容易受到CVE-2022-21449的攻击。
CVE-2022-21449的影响是什么?
利用此漏洞的攻击者可能能够拦截(读取和更改)加密通信,或在某些情况下绕过身份验证。此外,在使用ECDSA签名验证内容完整性的情况下,验证过程可能会受到影响。
如何修复CVE-2022-21449?
要修复此Java漏洞,我们建议将Java升级到每个分支的最新版本:17.03或18.0.1。
预定x射线安全工具的演示!
预约演示
有哪些缓解方案可用
cve - 2022 - 21449?
如果无法升级Java,我们建议使用另一种签名算法。以下是不应该使用的ECDSA变体列表:
NONEwithECDSA SHA1withECDSA SHA224withECDSA SHA256withECDSA SHA384withECDSA SHA512withECDSA sha3 - 224 withecdsa sha3 - 256 withecdsa sha3 - 384 withecdsa sha3 - 512 withecdsa NONEwithECDSAinP1363Format SHA1withECDSAinP1363Format SHA224withECDSAinP1363Format SHA256withECDSAinP1363Format SHA384withECDSAinP1363Format SHA512withECDSAinP1363Format sha3 - 224 withecdsainp1363format sha3 - 256 withecdsainp1363format sha3 - 384 withecdsainp1363format sha3 - 512 withecdsainp1363format
相反,我们建议使用EdDSA或Ed25519签名算法。如果需要遗留支持-可以使用RSA或DSA算法的任何其他变体。看到Java文档获取所支持算法的列表。
与JFrog安全研究保持最新
在我们的JFrog安全研究团队中跟踪最新的发现和技术更新安全研究博客文章并在推特上@JFrogSecurity.
找到易受攻击的版本与JFrog x射线
除了暴露新的安全漏洞和威胁,JFrog还通过自动安全扫描为开发人员和安全团队提供方便地访问其软件的最新相关信息JFrog x射线SCA工具.
