Redis Enterprise Software 发行说明 7.4.6-22(2024 年 7 月)
在客户端身份验证中支持 SHA-384 证书。用于optimize_shard_placement和恢复数据库 REST API 请求的新参数。
Redis 企业软件 |
---|
Redis 企业软件版本 7.4.6 现已推出!此版本包括 API 增强功能,这些增强功能保证了版本 7.4.2 的新次要版本而不是维护版本。但是,您可以毫无问题地从 7.4.2 升级到 7.4.6。
突出
此版本提供:
-
在客户端身份验证中支持 SHA-384 证书
-
的新参数
optimize_shard_placement
和recover
数据库 REST API 请求
此版本中的新增功能
增强
-
添加了在使用双向 TLS 进行客户端身份验证时对 SHA-384 证书的支持。
-
向 optimize_shards_placement REST API 请求中添加了一个选项,用于在计算数据库的优化分片放置时考虑复制。
-
添加
shard_uid
和shard_role
对于恢复 REST API 请求的响应正文中的每个持久性文件。启用数据库master_persistence后,这些字段有助于识别主分片的持久性文件,该文件是最新的,建议用于恢复。
Redis 模块功能集
Redis Enterprise 附带多个模块。从版本 7.4.2 开始,Redis Enterprise 包括两个功能集,与不同的 Redis 数据库版本兼容。
与 Redis 数据库版本 7.2 兼容的捆绑 Redis 模块:
-
RedisGears 2.0.20 预览版:RedisGears 预览版不会升级为 GA,并将在未来版本中删除。
与 Redis 数据库版本 6.0 和 6.2 兼容的捆绑 Redis 模块:
-
RedisGraph v2.10.15:RedisGraph 生命周期已结束,并将在未来版本中删除。有关更多详细信息,请参阅 RedisGraph 生命周期终止公告。
已解决的问题
-
RS118231:修复了配置更改为
slave_buffer
由于分片连接问题而失败,但错误地报告成功。 -
RS117757:将预留给管理员客户端的连接数增加到 64 个,以防止出现连接限制问题。
-
RS129900:修复了阻止使用集群升级期间上传的模块创建数据库的问题。
-
RS128254:如果集群的当前 TLS 协议版本不再受支持,则通过将新节点设置为 TLS 协议版本 1.2,修复了集群升级的 TLS 协议版本兼容性问题。
-
RS125593:添加了验证,以在更新 LDAP 配置时验证 LDAP 服务器 URI 是否包含主机和端口。
版本变更
- 添加了验证,以在更新 LDAP 配置时验证 LDAP 服务器 URI 是否包含主机和端口。
产品生命周期更新
生命周期终止保单延期
Redis Enterprise Software 版本 6.2 及更高版本的生命周期终止策略已延长至后续主要版本正式发布后的 24 个月。有关更新的生命周期终止计划,请参阅 Redis Enterprise Software 产品生命周期。
支持的升级路径
Redis Enterprise Software 版本 6.2.4 和 6.2.8 不支持版本 7.4.x 之后的直接升级。版本 6.2.10、6.2.12 和 6.2.18 是升级路径的一部分。要从 6.2.4 或 6.2.8 升级到 7.4.x 之后的版本,需要进行中间升级。
下一个主要的 Redis Enterprise Software 版本仍将捆绑 Redis 数据库版本 6.2,并允许将数据库从 Redis 数据库版本 6.2 升级到 7.x。
有关版本号的更多信息,请参阅 Redis Enterprise Software 产品生命周期。
弃用
旧版 UI 弃用
旧版 UI 已被弃用,取而代之的是新的 Cluster Manager UI,并将在未来版本中删除。
Redis 6.0 数据库弃用
Redis 数据库版本 6.0 自 Redis Enterprise Software 版本 7.4.2 起已弃用,并将在未来版本中删除。
要为将来删除 Redis 6.0 做准备,请执行以下作:
-
对于 Redis Enterprise 6.2.* 集群,请将 Redis 6.0 数据库升级到 Redis 6.2。有关更改列表,请参阅 Redis 6.2 发行说明。
-
对于 Redis Enterprise 7.2.4 和 7.4.2 集群,请将 Redis 6.0 数据库升级到 Redis 7.2。在升级数据库之前,请参阅 Redis 7.2 重大更改列表,并更新连接到数据库的任何应用程序以处理这些更改。
即将进行的更改
Redis Enterprise Software 容器的默认映像更改
从版本 7.6 开始,带有 image 标记的 Redis Enterprise Software 容器x.y.z-build
将基于 RHEL 而不是 Ubuntu。
仅当您使用官方 Redis Enterprise for Kubernetes 产品之外的容器并使用特定于 Ubuntu 的命令时,此更改才会影响您。
要在此更改后使用基于 Ubuntu 的映像,您可以在 image 标签中指定作系统后缀。例如,使用 image 标签7.4.2-216.focal
而不是7.4.2-216
.
支持的平台
下表提供了截至此 Redis Enterprise Software 版本支持的平台的快照。有关作系统兼容性的更多详细信息,请参阅支持的平台参考。
✅ 支持 – 此版本的 Redis Enterprise 软件和 Redis Stack 模块支持该平台。
⚠️弃用警告 – 此版本的 Redis Enterprise Software 仍支持该平台,但在未来版本中将取消支持。
Redis Enterprise 主要版本 |
7.4 | 7.2 | 6.4 | 6.2 |
---|---|---|---|---|
发布日期 | 2024 年 2 月 | 2023 年 8 月 | 2023 年 2 月 | 2021 年 8 月 |
生命周期结束日期 | 在下一个主要版本之后 确定 |
2026 年 2 月 | 2025 年 8 月 | 2025 年 2 月 |
平台 | ||||
RHEL 9 和 兼容的发行版1 |
✅ | – | – | – |
RHEL 8 和 兼容的发行版1 |
✅ | ✅ | ✅ | ✅ |
RHEL 7 和 兼容的发行版1 |
– | ⚠️ | ✅ | ✅ |
Ubuntu 20.04 版本2 | ✅ | ✅ | ✅ | – |
Ubuntu 18.04 版本2 | ⚠️ | ⚠️ | ✅ | ✅ |
Ubuntu 16.04 版本2 | – | ⚠️ | ✅ | ✅ |
Amazon Linux 2 | ✅ | ✅ | ✅ | – |
亚马逊 Linux 1 | – | ✅ | ✅ | ✅ |
Kubernetes (简体中文)3 | ✅ | ✅ | ✅ | ✅ |
Docker4 | ✅ | ✅ | ✅ | ✅ |
-
如果 RHEL 兼容发行版 CentOS、CentOS Stream、Alma 和 Rocky 具有完全的 RHEL 兼容性,则支持它们。支持运行 Red Hat 兼容内核 (RHCK) 的 Oracle Linux,但不支持 Unbreakable Enterprise Kernel (UEK)。
-
有关每个版本和 Kubernetes 发行版的支持的详细信息,请参阅 Redis Enterprise for Kubernetes 文档。
-
Redis Enterprise Software 的 Docker 映像仅经过认证,可用于开发和测试。
下载
下表显示了可用程序包的 SHA256 校验和:
包 | SHA256 校验和(7.4.6 - 7 月 22 日版本) |
---|---|
Ubuntu 18 的 | 3bf13415cf013869b6417165c6bc2966cade201a08ac7c2a4a7286990fca03df |
Ubuntu 20 的 | c0951fc688e8b02aeec06b0e98baf77988edef7fd2dc828b6af4126ecb9753ae |
Red Hat Enterprise Linux (RHEL) 8 | 4667c579c52f899a4992cfe5d97e7b4f70ae9f34f5ae9bf75f10cfe2869a80d4 |
Red Hat Enterprise Linux (RHEL) 9 | 6c37b1483b5fb6110c8055c1526aa58eec1d29d3519e92310859101419248831 |
Amazon Linux 2 | 5782ac40b18b813f1fd6244f45c7107bfe00baccf3e0f3439149bdd0cbbfd806 |
已知问题
-
RS61676:如果链中的任何证书没有公用名 (CN),则完整链证书更新将失败。
-
RS119958: The
debuginfo
脚本失败并显示错误/bin/tar: Argument list too long
如果 RocksDB 日志文件太多。此问题仅影响具有 Auto Tiering 的集群。
已知限制
新的 Cluster Manager UI 限制
以下旧版 UI 功能在新的 Cluster Manager UI 中尚不可用:
-
删除节点。
请改用 REST API 或旧版 UI。有关说明,请参阅删除集群节点。
-
清除主动-主动实例。
-
搜索并导出日志。
Amazon Linux 2 上 7.4.2 模块的 OpenSSL 兼容性问题
由于模块和集群之间存在 OpenSSL 1.1 兼容性问题,如果 Amazon Linux 2 集群的数据库使用以下模块:RedisGears、RediSearch 或 RedisTimeSeries,则不完全支持 Redis Enterprise Software 版本 7.4.2-54。
此问题将在将来的维护版本中修复。
RedisGraph 阻止升级到 RHEL 9
如果 Redis Enterprise 集群包含 RedisGraph 模块,则无法从以前的 RHEL 版本升级到 RHEL 9,即使任何数据库未使用也是如此。RedisGraph 模块已达到生命周期结束,在 RHEL 9 中完全不可用。
安全
开源 Redis 安全修复兼容性
作为 Redis 安全承诺的一部分,Redis Enterprise Software 实施了开源 Redis 提供的最新安全修复程序。Redis Enterprise 已经包含了相关 CVE 的修复程序。
针对开源 Redis 宣布的一些 CVE 不会影响 Redis Enterprise,因为 Redis Enterprise 中提供的功能不同或附加,而开源 Redis 中不可用。
Redis Enterprise 7.4.6-22 版本支持开源的 Redis 7.2、6.2 和 6.0。以下是按版本修复的开源 Redis CVE 列表。
Redis 7.2.x:
-
(CVE-2024-31449 漏洞)经过身份验证的用户可能使用特制的 Lua 脚本在位库中触发堆栈缓冲区溢出,这可能导致远程代码执行。
-
(CVE-2024-31228 漏洞)经过身份验证的用户可以通过对支持的命令(如
KEYS
,SCAN
,PSUBSCRIBE
,FUNCTION LIST
,COMMAND LIST
和 ACL 定义。匹配极长的模式可能会导致无限递归,从而导致堆栈溢出和进程崩溃。 -
(CVE-2023-41056 漏洞)在某些情况下,Redis 可能会错误地处理内存缓冲区的大小调整,这可能会导致缓冲区大小的计算不正确,并导致堆溢出和潜在的远程代码执行。
-
(CVE-2023-41053 漏洞)Redis 无法正确识别
SORT_RO
因此,可能会授予执行此命令的用户访问未由 ACL 配置明确授权的密钥的权限。(Redis 7.2.1)
Redis 7.0.x版本:
-
(CVE-2024-31449 漏洞)经过身份验证的用户可能使用特制的 Lua 脚本在位库中触发堆栈缓冲区溢出,这可能导致远程代码执行。
-
(CVE-2024-31228 漏洞)经过身份验证的用户可以通过对支持的命令(如
KEYS
,SCAN
,PSUBSCRIBE
,FUNCTION LIST
,COMMAND LIST
和 ACL 定义。匹配极长的模式可能会导致无限递归,从而导致堆栈溢出和进程崩溃。 -
(CVE-2023-41056 漏洞)在某些情况下,Redis 可能会错误地处理内存缓冲区的大小调整,这可能会导致缓冲区大小的计算不正确,并导致堆溢出和潜在的远程代码执行。
-
(CVE-2023-41053 漏洞)Redis 无法正确识别
SORT_RO
因此,可能会授予执行此命令的用户访问未由 ACL 配置明确授权的密钥的权限。(Redis 7.0.13) -
(CVE-2023-36824 漏洞)在某些情况下,从命令和参数列表中提取键名称可能会触发堆溢出,并导致读取随机堆内存、堆损坏和可能的远程代码执行。具体来说:使用
COMMAND GETKEYS*
以及 ACL 规则中键名称的验证。(Redis 7.0.12) -
(CVE-2023-28856 漏洞)经过身份验证的用户可以使用
HINCRBYFLOAT
命令创建无效的哈希字段,该字段将在访问时使 Redis 崩溃。(Redis 7.0.11) -
(CVE-2023-28425 漏洞)特制
MSETNX
命令可能导致断言和拒绝服务。(Redis 7.0.10) -
(CVE-2023-25155 漏洞)特制
SRANDMEMBER
,ZRANDMEMBER
和HRANDFIELD
命令可能会触发整数溢出,从而导致运行时断言和终止 Redis 服务器进程。(Redis 7.0.9) -
(CVE-2023-22458 漏洞)Redis 中的整数溢出
HRANDFIELD
和ZRANDMEMBER
命令可能导致拒绝服务。(Redis 7.0.8) -
(CVE-2022-36021 漏洞)字符串匹配命令(如
SCAN
或KEYS
) 触发对 Redis 的拒绝服务攻击,可导致其挂起并消耗 100% 的 CPU 时间。(Redis 7.0.9) -
(CVE-2022-35977 漏洞)Redis 中的整数溢出
SETRANGE
和SORT
/SORT_RO
命令可能会使 Redis 出现 OOM panic。(Redis 7.0.8) -
(CVE-2022-35951 漏洞)执行
XAUTOCLAIM
命令,并使用特制的COUNT
参数可能会导致整数溢出、后续堆溢出,并可能导致远程代码执行。此问题会影响 Redis 版本 7.0.0 或更高版本。(Redis 7.0.5) -
(CVE-2022-31144 漏洞)特制的
XAUTOCLAIM
命令可能会导致堆溢出,并可能远程执行代码。此问题会影响 Redis 版本 7.0.0 或更高版本。(Redis 7.0.4) -
(CVE-2022-24834 漏洞)在 Redis 中执行的特制 Lua 脚本可在 cjson 和 cmsgpack 库中触发堆溢出,并导致堆损坏和可能的远程代码执行。从 2.6 开始,所有支持 Lua 脚本的 Redis 版本都存在此问题,并且仅影响经过身份验证的用户和授权用户。(Redis 7.0.12)
-
(CVE-2022-24736 漏洞)尝试加载特制 Lua 脚本的攻击者可导致空指针取消引用,从而导致
redis-server
过程。此问题会影响 Redis 的所有版本。(Redis 7.0.0) -
(CVE-2022-24735 漏洞)通过利用 Lua 脚本执行环境中的弱点,有权访问 Redis 的攻击者可以注入 Lua 代码,该代码将以另一个 Redis 用户的(可能更高)权限执行。(Redis 7.0.0)
Redis 6.2.x:
-
(CVE-2024-31449 漏洞)经过身份验证的用户可能使用特制的 Lua 脚本在位库中触发堆栈缓冲区溢出,这可能导致远程代码执行。
-
(CVE-2024-31228 漏洞)经过身份验证的用户可以通过对支持的命令(如
KEYS
,SCAN
,PSUBSCRIBE
,FUNCTION LIST
,COMMAND LIST
和 ACL 定义。匹配极长的模式可能会导致无限递归,从而导致堆栈溢出和进程崩溃。 -
(CVE-2023-28856 漏洞)经过身份验证的用户可以使用
HINCRBYFLOAT
命令创建无效的哈希字段,该字段将在访问时使 Redis 崩溃。(Redis 6.2.12) -
(CVE-2023-25155 漏洞)特制
SRANDMEMBER
,ZRANDMEMBER
和HRANDFIELD
命令可能会触发整数溢出,从而导致运行时断言和终止 Redis 服务器进程。(Redis 6.2.11) -
(CVE-2023-22458 漏洞)Redis 中的整数溢出
HRANDFIELD
和ZRANDMEMBER
命令可能导致拒绝服务。(Redis 6.2.9) -
(CVE-2022-36021 漏洞)字符串匹配命令(如
SCAN
或KEYS
) 触发对 Redis 的拒绝服务攻击,可导致其挂起并消耗 100% 的 CPU 时间。(Redis 6.2.11) -
(CVE-2022-35977 漏洞)Redis 中的整数溢出
SETRANGE
和SORT
/SORT_RO
命令可能会使 Redis 出现 OOM panic。(Redis 6.2.9) -
(CVE-2022-24834 漏洞)在 Redis 中执行的特制 Lua 脚本可在 cjson 和 cmsgpack 库中触发堆溢出,并导致堆损坏和可能的远程代码执行。从 2.6 开始,所有支持 Lua 脚本的 Redis 版本都存在此问题,并且仅影响经过身份验证的用户和授权用户。(Redis 6.2.13)
-
(CVE-2022-24736 漏洞)尝试加载特制 Lua 脚本的攻击者可导致空指针取消引用,从而导致
redis-server
过程。此问题会影响 Redis 的所有版本。(Redis 6.2.7) -
(CVE-2022-24735 漏洞)通过利用 Lua 脚本执行环境中的弱点,有权访问 Redis 的攻击者可以注入 Lua 代码,该代码将以另一个 Redis 用户的(可能更高)权限执行。(Redis 6.2.7)
-
(CVE-2021-41099 漏洞)处理某些字符串命令和网络负载时出现整数到堆缓冲区溢出,当
proto-max-bulk-len
手动配置为非默认的非常大的值。(Redis 6.2.6) -
(CVE-2021-32762 漏洞)中的整数到堆缓冲区溢出问题
redis-cli
和redis-sentinel
在一些较旧和不太常见的平台上解析大型多批量回复。(Redis 6.2.6) -
(CVE-2021-32761 漏洞)Redis 版本 2.2 或更高版本中的整数溢出错误可使用
BITFIELD
命令来破坏堆,并可能导致远程代码执行。(Redis 6.2.5) -
(CVE-2021-32687 漏洞)整数到堆缓冲区溢出,当 intsets
set-max-intset-entries
手动配置为非默认的非常大的值。(Redis 6.2.6) -
(CVE-2021-32675 漏洞)在许多连接上处理具有大量元素的 RESP 请求负载时,拒绝服务。(Redis 6.2.6)
-
(CVE-2021-32672 漏洞)Lua 调试器的随机堆读取问题。(Redis 6.2.6)
-
(CVE-2021-32628 漏洞)当为
hash-max-ziplist-entries
,hash-max-ziplist-value
,zset-max-ziplist-entries
或zset-max-ziplist-value
.(Redis 6.2.6) -
(CVE-2021-32627 漏洞)当为
proto-max-bulk-len
和client-query-buffer-limit
.(Redis 6.2.6) -
(CVE-2021-32626 漏洞)特别构建的 Lua 脚本可能会导致堆缓冲区溢出。(Redis 6.2.6)
-
(CVE-2021-32625 漏洞)使用 STRALGO LCS 命令可以利用 Redis 版本 6.0 或更高版本中的整数溢出错误来破坏堆,并可能导致远程代码执行。这是 CVE-2021-29477 修复不完整的结果。(Redis 6.2.4)
-
(CVE-2021-29478 漏洞)Redis 6.2 中的整数溢出错误可能被利用来破坏堆,并可能导致远程代码执行。该漏洞涉及更改默认的 set-max-intset-entries 配置值,创建一个由整数值组成的大型 set 键,并使用 COPY 命令复制它。从 2.6 开始的所有 Redis 版本都存在整数溢出错误,它可能导致 RDB 或 DUMP 有效负载损坏,但不会通过 COPY(在 6.2 之前不存在)利用。(Redis 6.2.3)
-
(CVE-2021-29477 漏洞)使用 STRALGO LCS 命令,可以利用 Redis 版本 6.0 或更高版本中的整数溢出错误来破坏堆,并可能导致远程代码执行。从 6.0 开始的所有 Redis 版本都存在整数溢出错误。(Redis 6.2.3)
Redis 6.0.x:
-
(CVE-2022-24834 漏洞)在 Redis 中执行的特制 Lua 脚本可在 cjson 和 cmsgpack 库中触发堆溢出,并导致堆损坏和可能的远程代码执行。从 2.6 开始,所有支持 Lua 脚本的 Redis 版本都存在此问题,并且仅影响经过身份验证的用户和授权用户。(Redis 6.0.20)
-
(CVE-2023-28856 漏洞)经过身份验证的用户可以使用
HINCRBYFLOAT
命令创建无效的哈希字段,该字段将在访问时使 Redis 崩溃。(Redis 6.0.19) -
(CVE-2023-25155 漏洞)特制
SRANDMEMBER
,ZRANDMEMBER
和HRANDFIELD
命令可能会触发整数溢出,从而导致运行时断言和终止 Redis 服务器进程。(Redis 6.0.18) -
(CVE-2022-36021 漏洞)字符串匹配命令(如
SCAN
或KEYS
) 触发对 Redis 的拒绝服务攻击,可导致其挂起并消耗 100% 的 CPU 时间。(Redis 6.0.18) -
(CVE-2022-35977 漏洞)Redis 中的整数溢出
SETRANGE
和SORT
/SORT_RO
命令可能会使 Redis 出现 OOM panic。(Redis 6.0.17)