• 公告ID (KylinSec-SA-2024-3665)

摘要:

openssl security update

安全等级: Medium

公告ID: KylinSec-SA-2024-3665

发布日期: 2024年7月19日

关联CVE: CVE-2024-5535  

  • 详细介绍

1. 漏洞描述

   

OpenSSL 项目是一个协作项目,旨在开发一个健壮、商业级、功能全面且开源的工具包,该工具包实现了安全套接层(SSL v2/v3)和传输层安全(TLS v1)协议,以及一个功能强大的通用加密库。该项目由全球志愿者社区管理,他们利用互联网进行沟通、规划和开发 OpenSSL 工具包及其相关文档。

安全修复:

问题概述:使用 OpenSSL API 函数 SSL_select_next_proto 并传入一个空的受支持客户端协议缓冲区时,可能会导致崩溃或将内存内容发送给对等方。

影响概述:缓冲区越界读取可能导致一系列潜在后果,如应用程序行为异常或崩溃。特别是,此问题可能导致最多 255 字节的任意私有内存数据被发送给对等方,从而导致机密性丧失。但是,只有那些直接以零长度受支持客户端协议列表调用 SSL_select_next_proto 函数的应用程序才会受到此问题的影响。这通常不是一个有效场景,也通常不在攻击者控制之下,但可能因调用应用程序中的配置或编程错误而意外发生。

OpenSSL API 函数 SSL_select_next_proto 通常由支持 ALPN(应用层协议协商)或 NPN(下一个协议协商)的 TLS 应用程序使用。NPN 是较旧的协议,从未标准化,并且已被弃用,转而支持 ALPN。我们认为 ALPN 的部署范围远广于 NPN。SSL_select_next_proto 函数接受来自服务器的协议列表和来自客户端的协议列表,并返回同时出现在服务器列表和客户端列表中的第一个协议。如果两个列表之间没有重叠,则返回客户端列表中的第一个项目。在任何情况下,它都会指示两个列表之间是否存在重叠。在 SSL_select_next_proto 被调用且客户端列表长度为零的情况下,它未能注意到这一条件,而是返回客户端列表指针之后的内存(并报告列表之间没有重叠)。

此函数通常从 ALPN 的服务器端应用程序回调或 NPN 的客户端应用程序回调中调用。在 ALPN 的情况下,客户端提供的协议列表由 libssl 保证其长度永远不会为零。服务器协议列表来自应用程序,并且通常也不应期望其长度为零。在这种情况下,如果 SSL_select_next_proto 函数按预期调用(将客户端提供的列表通过 client/client_len 参数传入),则应用程序不会受到此问题的影响。如果应用程序意外配置为零长度的服务器列表,并意外地将该零长度服务器列表作为 client/client_len 参数传入,并且未能正确处理“无重叠”响应(在 ALPN 中通常会导致握手失败),则它将受到此问题的影响。

在 NPN(下一个协议协商)的情况下,当没有重叠时,协议允许客户端机会性地选择一个协议。OpenSSL 在没有重叠的情况下返回客户端列表中的第一个协议以支持这一点。客户端协议列表来自应用程序,并且通常不应期望其长度为零。但是,如果 SSL_select_next_proto 函数意外地被调用且 client_len 为 0,则会返回一个无效的内存指针。如果应用程序将此输出用作机会性协议,则会发生机密性丧失。

此问题已被评估为低严重性,因为应用程序最有可能在使用 NPN 而不是 ALPN 时受到攻击,但 NPN 的使用并不广泛。此外,它还需要应用程序配置或编程错误。最后,这个问题通常不会受到攻击者的控制,因此主动利用的可能性不大。

OpenSSL 的 3.3、3.2、3.1 和 3.0 版本中的 FIPS 模块不受此问题影响。

由于此问题的严重性较低,我们目前不会发布 OpenSSL 的新版本。修复程序将在下一个版本发布时包含在内。(CVE-2024-5535)

2. 影响范围

cve名称 产品 组件 是否受影响
CVE-2024-5535 KY3.5.2 openssl Fixed
CVE-2024-5535 V6 openssl Fixed

3. 影响组件

    openssl

4. 修复版本

   

V6

软件名称 架构 版本号
openssl-help noarch 3.0.12-15.ks6
openssl x86_64 3.0.12-15.ks6
openssl-devel x86_64 3.0.12-15.ks6
openssl-libs x86_64 3.0.12-15.ks6
openssl-perl x86_64 3.0.12-15.ks6
openssl aarch64 3.0.12-15.ks6
openssl-devel aarch64 3.0.12-15.ks6
openssl-libs aarch64 3.0.12-15.ks6
openssl-perl aarch64 3.0.12-15.ks6

KY3.5.2

软件名称 架构 版本号
openssl-help noarch 1.1.1m-37.ky3_5.kb1
openssl x86_64 1.1.1m-37.ky3_5.kb1
openssl-devel x86_64 1.1.1m-37.ky3_5.kb1
openssl-libs x86_64 1.1.1m-37.ky3_5.kb1
openssl-perl x86_64 1.1.1m-37.ky3_5.kb1
openssl aarch64 1.1.1m-37.ky3_5.kb1
openssl-devel aarch64 1.1.1m-37.ky3_5.kb1
openssl-libs aarch64 1.1.1m-37.ky3_5.kb1
openssl-perl aarch64 1.1.1m-37.ky3_5.kb1

5. 修复方法


方法一:下载安装包进行升级安装
1、通过下载链接下载需要升级的升级包保存,如 xxx.rpm
2、通过rpm命令升级,如 rpm -Uvh xxx.rpm

方法二:通过软件源进行升级安装
1、保持能够连接上互联网
2、通过yum命令升级指定的包,如 yum install 包名

6. 下载链接

   

V6:

x86_64:

     openssl-help   

     openssl   

     openssl-devel   

     openssl-libs   

     openssl-perl   

aarch64:

     openssl-help   

     openssl   

     openssl-devel   

     openssl-libs   

     openssl-perl   

KY3.5.2:

x86_64:

     openssl-help   

     openssl   

     openssl-devel   

     openssl-libs   

     openssl-perl   

aarch64:

     openssl-help   

     openssl   

     openssl-devel   

     openssl-libs   

     openssl-perl   

上一篇:KylinSec-SA-2024-3663 下一篇:KylinSec-SA-2024-4805