OpenSSL 3.6.0 < 3.6.3 多个漏洞

critical Nessus 插件 ID 320135

简介

远程服务受到多个漏洞的影响。

描述

远程主机上安装的 OpenSSL 版本低于 3.6.3。因此,该软件受到 3.6.3 公告中提及的多个漏洞影响。

- 问题摘要:特别构建 PKCS#7 消息或 S/MIME 带符号消息可在签名验证期间 PKCS#7 触发释放后使用。影响汇总:释放后使用可能会导致进程崩溃、堆损坏,或可能造成远程代码执行。当处理 PKCS#7 消息或 S/MIME 带符号消息时,如果 SignedData digestAlgorithms 字段以空 ASN.1 SET 的形式存在,则 OpenSSL 可能会在 PKCS7_verify() 期间错误地释放调用程序拥有的 BIO。调用应用程序随后对 BIO 的使用会导致释放后使用情况。在常见情况下,应用程序稍后对最初传递给 PKCS7_verify() 的 BIO 调用 BIO_free() 时,会发生此情况。这可能会导致崩溃或其他内存损坏,具体取决于分配器行为和应用程序特定的 BIO 使用模式。在某些应用程序上下文中,此问题可能被利用于远程代码执行。使用 OpenSSL PKCS#7 API 处理消息或 S/MIME 带符号消息的PKCS#7应用程序可能会受到影响。将 CMS API 用于此处理的应用程序不受影响。4.0、3.6、3.5、3.4 和 3.0 中的 FIPS 模块不受此问题的影响,因为受影响的代码位于 OpenSSL FIPS 模块边界之外。(CVE-2026-45447)

- 问题摘要:当 CMS 基于密码的解密(RFC 3211 / PWRI 密钥解包)处理攻击者提供的 CMS 数据时,攻击者选择的流模式 KEK 密码可在 kek_unwrap_key() 中触发堆越界读取。影响汇总:堆缓冲区过度读取可触发崩溃,如果输入缓冲区以内存页面边界结束,且后续页面未映射,则可能导致应用程序拒绝服务。不会泄露信息,因为过度读取字节不会泄露给攻击者。密钥解包功能执行 RFC 中指定的检查字节测试,该测试从基于消息中封装的密钥长度的堆分配中读取 7 字节。存在基于封装密码的块长度的最小长度检查。但是,该密码是从攻击者的 PWRI keyEncryptionAlgorithm 中携带的 OID 中选择的,且不要求该密码是块密码。当攻击者选择流模式密码时,防护措施将失效,且含有解包密钥的分配缓冲区可能太小,无法符合 RFC 中指定的检查字节,因此可能会发生缓冲区过度读取。调用不受信任的 CMS 数据中的 CMS_decrypt() 或 CMS_decrypt_set1_password() 的应用程序(等同于 openssl cms
-解密 -pwri_password ...)容易受到此问题的影响。无需密码知识:在任何认证成功之前,都会在尝试解包期间发生越界读取。越界读取受限于几个字节,并且不会写入输出,因此不会泄露信息。
触发崩溃需要向边界未映射内存进行分配,而普通分配器不太可能出现此情况。FIPS 模块不受此问题影响。(CVE-2026-9076)

- 问题摘要:在 ASN1_mbstring_ncopy() 中为 Unicode 输出调整目标缓冲区大小时发生的带符号整数溢出,可导致堆缓冲区溢出。影响摘要:堆缓冲区溢出可能导致崩溃,或可能导致攻击者控制代码执行或其他未定义的行为。在 ASN1_mbstring_copy() 和 ASN1_mbstring_ncopy() 中,Unicode 输出的目标大小以带符号的 int 计算得出:左移 BMPSTRING (UTF-16) 和 UNIVERSALSTRING (UTF-32) 的输入字符计数,并对 UTF8STRING 每个字符的字节数进行求和。当输入达到约 2^30 个字符时,计算将溢出。在最坏的情况下(2^30 个字符的 UNIVERSALSTRING),大小值会回绕为零,调用 OPENSSL_malloc(1),后续的字符复制操作将在一字节分配空间之外写入数 GB 的数据。X.509 证书处理通过 ASN1_STRING_set_by_NID() 路由,其 DIRSTRING_TYPE 掩码排除 UNIVERSALSTRING,且每个 NID 对应的长度限制约束了输入长度上限;OpenSSL 中没有任何网络协议或证书处理路径执行该溢出。触发该缺陷需要应用程序直接调用 ASN1_mbstring_copy() 或 ASN1_mbstring_ncopy(),或通过 ASN1_STRING_TABLE_add() 注册自定义字符串类型,并处理攻击者可控的、具有半 GB 或更大量级的输入数据。出于这些原因,我们将该问题的严重性定为低危。4.0、3.6、3.5、3.4 和 3.0 中的 FIPS 模块不受此问题的影响,因为受影响的代码位于 OpenSSL FIPS 模块边界之外。(CVE-2026-7383)

- 问题摘要:AES-SIV (RFC 5297) 和 AES-GCM-SIV (RFC 8452) 的实现使用空密文错误地处理 AAD(附加认证数据)的认证,从而允许伪造此类消息。影响汇总:攻击者可以使用任意 AAD 伪造空消息,使用这些密码发送给受害者的应用程序。AES-SIV (RFC 5297) 和 AES-GCM-SIV (RFC 8452) 是防随机数误用的 AEAD 模式:它们接受密钥、随机数、可选 AAD(经认证但未加密的字节)和纯文本,并生成密文和 16 字节标签。解密时,系统会记录“EVP_DecryptFinal_ex()”,仅当成功验证标签时才会返回成功。在这些密码的 OpenSSL 供应商实现中,只有在使用非空数据调用解密函数时,才会计算预期的标签。如果调用程序提供 AAD,然后调用“EVP_DecryptFinal_ex()”而未调用密文更新(收到的密文长度为零时可能发生此情况),则永远不会重新计算标签,并且仍保留其全零值。使用 AES-GCM-SIV 时,发送任意 AAD、空密文和全零标签的攻击者会以单次方式通过任何未知密钥的认证。使用 AES-SIV 时,为了发起攻击,应用程序必须在不重置密钥的情况下重用解密上下文。AES-SIV 是自 OpenSSL 3.0 开始实现的。AES-GCM-SIV 是自 OpenSSL 3.2 开始实现的。OpenSSL 本身 (TLS/CMS/PKCS7/HPKE/QUIC) 中实现的协议均不支持 AES-GCM-SIV 或 AES-SIV。要挂载攻击,应用程序必须实现自己的协议并使用 EVP 接口。此外,当具有空密文的消息到达时,它们必须跳过密文更新。4.0、3.6、3.5、3.4 和 3.0 中的 FIPS 模块不受此问题的影响,因为这些算法未经 FIPS 批准且受影响的代码位于 OpenSSL FIPS 模块边界之外。(CVE-2026-45446)

- 问题摘要:当应用程序通过公共 EVP_Cipher() 单次调用接口驱动 AES-OCB 上下文时,应用程序提供的初始化矢量 (IV) 会被静默丢弃。影响汇总:
无论调用方提供的 IV 如何,在同一密钥下加密的每条消息都使用相同的有效随机数,从而导致(密钥、随机数)被重用和机密性丢失。如果使用相同的代码路径计算认证标签,则该标签仅依赖于(密钥,IV)对而不依赖于明文或密文,允许从单个捕获的消息中普遍伪造任意密文。OpenSSL 提供两种驱动密码的方法:记录的流式接口 (EVP_CipherUpdate / EVP_CipherFinal_ex) 和较低级别的单次调用 EVP_Cipher(),其文档明确指出,不建议应用程序使用 EVP_Cipher(),支持使用 EVP_CipherUpdate() 和 EVP_CipherFinal_ex()。OCB 提供商的流式处理程序在处理数据前,会将应用程序提供的 IV 注入 OCB 上下文;单次调用处理程序则没有执行此程序。因此,无论调用方的 IV 如何,每次调用 AES-OCB 上下文中的 EVP_Cipher() 都会以密码初始化留下的全零密钥衍生偏移状态运行。如果随后使用 EVP_EncryptFinal_ex() 获取认证标签,则延迟的 IV 设置会在该时运行并清除本应通过明文累积的运行校验和。生成的标签仅是(密钥、 IV)的函数,并针对同一 (密钥、 IV)对生成的任何密文进行验证。OpenSSL SSL/TLS 实现不受影响:AES-OCB 不是 TLS 加密套件,libssl 在任何情况下都不会调用 EVP_Cipher()。通过记录的流式 AEAD API (EVP_CipherUpdate / EVP_CipherFinal_ex) 驱动 AES-OCB 的应用程序不受影响。只有将 AES-OCB 密码与 EVP_Cipher() 单次调用 API 相结合的应用程序容易受到影响。4.0、3.6、3.5、3.4 和 3.0 中的 FIPS 模块不受此问题的影响,因为 AES-OCB 位于 OpenSSL FIPS 模块边界之外。(CVE-2026-45445)

请注意,Nessus 尚未测试这些问题,而是只依据应用程序自我报告的版本号进行判断。

解决方案

升级到 OpenSSL 版本 3.6.3 或更高版本。

另见

http://www.nessus.org/u?0e2103cc

http://www.nessus.org/u?1998eb2c

http://www.nessus.org/u?f66483d7

http://www.nessus.org/u?50e0b924

http://www.nessus.org/u?affb7fef

http://www.nessus.org/u?b27e157f

http://www.nessus.org/u?cd588207

http://www.nessus.org/u?5c60eb93

http://www.nessus.org/u?482a5619

http://www.nessus.org/u?db195a49

http://www.nessus.org/u?e2547607

http://www.nessus.org/u?e703f68b

http://www.nessus.org/u?e754d198

http://www.nessus.org/u?8c3e1af1

http://www.nessus.org/u?9b529e25

http://www.nessus.org/u?a5bb1205

https://openssl-library.org/news/secadv/20260609.txt

http://www.nessus.org/u?eac4598c

http://www.nessus.org/u?eee02ef7

https://www.cve.org/CVERecord?id=CVE-2026-34180

https://www.cve.org/CVERecord?id=CVE-2026-34181

https://www.cve.org/CVERecord?id=CVE-2026-34182

https://www.cve.org/CVERecord?id=CVE-2026-34183

https://www.cve.org/CVERecord?id=CVE-2026-35188

https://www.cve.org/CVERecord?id=CVE-2026-42764

https://www.cve.org/CVERecord?id=CVE-2026-42765

https://www.cve.org/CVERecord?id=CVE-2026-42766

https://www.cve.org/CVERecord?id=CVE-2026-42767

https://www.cve.org/CVERecord?id=CVE-2026-42768

https://www.cve.org/CVERecord?id=CVE-2026-42769

https://www.cve.org/CVERecord?id=CVE-2026-42770

https://www.cve.org/CVERecord?id=CVE-2026-45445

https://www.cve.org/CVERecord?id=CVE-2026-45446

https://www.cve.org/CVERecord?id=CVE-2026-45447

https://www.cve.org/CVERecord?id=CVE-2026-7383

https://www.cve.org/CVERecord?id=CVE-2026-9076

插件详情

严重性: Critical

ID: 320135

文件名: openssl_3_6_3.nasl

版本: 1.5

类型: Combined

代理: windows, macosx, unix

系列: Web Servers

发布时间: 2026/6/9

最近更新时间: 2026/6/12

配置: 启用全面检查 (optional)

支持的传感器: Continuous Assessment, Nessus Agent, Nessus

风险信息

VPR

风险因素: High

分数: 7.4

CVSS v2

风险因素: Critical

基本分数: 10

时间分数: 7.4

矢量: CVSS2#AV:N/AC:L/Au:N/C:C/I:C/A:C

CVSS 分数来源: CVE-2026-42768

CVSS v3

风险因素: Critical

基本分数: 9.1

时间分数: 7.9

矢量: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N

时间矢量: CVSS:3.0/E:U/RL:O/RC:C

CVSS 分数来源: CVE-2026-34182

漏洞信息

CPE: cpe:/a:openssl:openssl

必需的 KB 项: installed_sw/OpenSSL

易利用性: No known exploits are available

补丁发布日期: 2026/6/9

漏洞发布日期: 2026/6/9

参考资料信息

CVE: CVE-2026-34180, CVE-2026-34181, CVE-2026-34182, CVE-2026-34183, CVE-2026-35188, CVE-2026-42764, CVE-2026-42765, CVE-2026-42766, CVE-2026-42767, CVE-2026-42768, CVE-2026-42769, CVE-2026-42770, CVE-2026-45445, CVE-2026-45446, CVE-2026-45447, CVE-2026-7383, CVE-2026-9076

IAVA: 2026-A-0589