能够在 Java SE 中生成虚拟 ECDSA 签名。 MySQL、VirtualBox 和 Solaris 中的漏洞

Oracle 已发布其产品更新的计划版本(关键补丁更新),旨在消除关键问题和漏洞。 520 月份的更新共修复了 XNUMX 个漏洞。

一些问题:

  • 6 Java SE 中的安全问题。 所有漏洞都可以在无需身份验证的情况下被远程利用,并影响允许执行不可信代码的环境。 有两个问题的严重性级别已指定为 7.5。 这些漏洞已在 Java SE 18.0.1、11.0.15 和 8u331 版本中得到解决。

    其中一个问题(CVE-2022-21449)允许您在生成时使用零曲线参数来生成虚构的 ECDSA 数字签名(如果参数为零,则曲线将趋于无穷大,因此在生成时明确禁止使用零值)规范)。 Java库没有检查ECDSA参数的空值,因此在处理带有空参数的签名时,Java在所有情况下都认为它们有效)。

    除此之外,该漏洞还可用于生成虚拟的 TLS 证书(该证书将在 Java 中被视为正确),以及通过 WebAuthn 绕过身份验证并生成虚拟的 JWT 签名和 OIDC 令牌。 换句话说,该漏洞允许您生成通用证书和签名,这些证书和签名将在使用标准 java.security.* 类进行验证的 Java 处理程序中被接受并被视为正确。 该问题出现在 Java 分支 15、16、17 和 18 中。提供了生成假证书的示例。 jshell>导入java.security.* jshell>var密钥=KeyPairGenerator.getInstance("EC").generateKeyPair()密钥==>java.security.KeyPair@626b2d4a jshell>varblankSignature=新字节[64]blankSignature==>字节[64] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, … , 0, 0, 0, 0, 0, 0, 0, 0 } jshell > var sig = Signature.getInstance("SHA256WithECDSAInP1363Format") sig ==> 签名对象:SHA256WithECDSAInP1363Format jshell> sig.initVerify(keys.getPublic()) jshell> sig.update("Hello, World".getBytes()) jshell> sig.verify(blankSignature) $8 ==> true

  • MySQL服务器中存在26个漏洞,其中两个可被远程利用。 与使用 OpenSSL 和 protobuf 相关的最严重问题的严重性级别为 7.5。 不太严重的漏洞影响优化器、InnoDB、复制、PAM 插件、DDL、DML、FTS 和日志记录。 这些问题已在 MySQL Community Server 8.0.29 和 5.7.38 版本中得到解决。
  • VirtualBox 中存在 5 个漏洞。 这些问题的严重性级别为 7.5 到 3.8(最危险的漏洞仅出现在 Windows 平台上)。 这些漏洞已在 VirtualBox 6.1.34 更新中修复。
  • Solaris 中的 6 个漏洞。 这些问题影响内核和实用程序。 公用事业中最严重的问题被指定为 8.2 级危险级别。 这些漏洞已在 Solaris 11.4 SRU44 更新中得到解决。

来源: opennet.ru

添加评论