dot Redis 8 来了——而且它是开源的

了解更多

安全公告:CVE-2024-46981, CVE-2024-51737, CVE-2024-51480, CVE-2024-55656

发生了什么?

作为我们持续维护 Redis 安全性、保障性和合规性的一部分,在以下版本中已识别并修复了 Redis 和 Redis Modules/Stack 中的四个安全漏洞。

漏洞是什么?

[CVE-2024-46981] Lua Use-After-Free 远程代码执行漏洞。  CVSS 评分:7.0  (高)

在 Redis 中执行的特制 Lua 脚本可能能够操纵 Lua VM 垃圾收集器,从而可能导致远程代码执行 (RCE)。此问题影响所有支持 Lua 脚本的 Redis 版本,并且只能由具有适当网络连接和运行 Lua 脚本权限的有效、已认证用户利用。 

[CVE-2024-51737] RediSearch – LIMIT 或 KNN 参数的整数溢出可导致 RCE。CVSS:7.0 (高)

已认证的 Redis 用户执行带有特制 LIMIT 命令参数的 FT.SEARCH 或 FT.AGGREGATE,或带有特制 KNN 命令参数的 FT.SEARCH 时,可能触发整数溢出,导致堆溢出和潜在的远程代码执行。

[CVE-2024-51480] RedisTimeSeries –  整数溢出远程代码执行漏洞。CVSS:7.0 (高)

已认证用户使用特制命令参数执行 TS.QUERYINDEX, TS.MGET, TS.MRAGE, TS.MREVRANGE 命令中的一个,可能导致整数溢出、随后的堆溢出,并可能导致远程代码执行。

[CVE-2024-55656] RedisBloom –  整数溢出远程代码执行漏洞。CVSS:8.8 (高)

已认证用户使用足够大的 WIDTH 和 DEPTH 命令参数执行命令 `CMS.INITBYDIM`,可能导致整数溢出、随后的堆溢出,并可能导致远程代码执行。

如何保护您的 Redis 实例?   

利用这些漏洞要求攻击者首先获得对您的 Redis 实例的认证访问权限。

您可以采取几个步骤来保护您的 Redis 免受恶意攻击者的访问。为了最大限度地降低被利用的风险,遵循以下最佳实践非常重要:

  • 限制网络访问:确保只有授权用户和系统才能访问 Redis 数据库。使用防火墙和网络策略限制对可信来源的访问,并防止未经授权的连接。
  • 强制强认证:对所有访问 Redis 实例强制使用凭据。避免允许未认证访问的配置,并确保启用保护模式(在 CE 和 OSS 中)以防止意外暴露。
  • 限制权限:确保具有 Redis 访问权限的用户身份被授予最低必需的权限。仅允许可信身份运行 Lua 脚本或任何其他潜在风险命令。

有关如何安全配置、部署和使用 Redis 的更多详细信息,请访问社区版企业版软件文档站点。

如何修复?  

我们已经使用修复程序升级了 Redis Cloud 服务,因此您无需采取额外行动。

如果您是自托管 Redis(无论是软件版还是社区版),请将您的 Redis 升级到最新版本。 

以下列出的 Redis OSS、CE、Stack 和软件版本包含了修复。完成升级后,这些漏洞将在您的环境中得到修复。  

受影响的版本已修复的版本
CVE-2024-46981
Lua Use-After-Free 远程代码执行漏洞
CVSS 评分:7.0 (高)
所有 Redis 软件版本• 7.4.6-102 及以上
• 7.2.4-117 及以上
• 6.4.2-115 及以上
• 6.2.18-88 及以上
• 7.6.0-116 及以上 (非GA)
• 7.8.x – 及以上 

以上所有版本均包含模块 CVE 修复
所有 Redis OSS/CE/Stack 版本OSS/CE
• 7.4.2 及以上
• 7.2.7 及以上
• 6.2.17 及以上

Stack
• 7.4.0-v2 及以上
• 7.2.0-v14 及以上
• 6.2.6-v18 及以上 (正在进行中)

以上所有 Stack 版本均包含模块 CVE 修复
CVE-2024-51737 (RediSearch) LIMIT 或 KNN 参数的整数溢出可导致 RCE
CVSS:7.0 (高)
RediSearch 版本 >= 2.0• 2.10.10 及以上
• 2.8.21 及以上
• 2.6.24 及以上
CVE-2024-51480 (RedisTimeSeries) 整数溢出远程代码执行漏洞
CVSS:7.0 (高)
RedisTimeseries 版本 >=1.0.0• 1.12.5 及以上
• 1.10.16 及以上
• 1.8.16 及以上
CVE-2024-55656 (RedisBloom) 整数溢出远程代码执行漏洞
CVSS:8.8 (高)
RedisBloom 版本 >= 2.0• 2.8.5 及以上
• 2.6.16 及以上
• 2.4.13 及以上

我如何知道是否已经受到影响?

我们没有证据表明这些漏洞在 Redis Cloud 或客户环境中被利用的报告。

以下是潜在利用的一般迹象,您可以使用这些迹象在您的操作环境中进行搜索。

如果发生利用,可能会产生这些技术和行为迹象或痕迹。如果您在 Redis 环境中搜索这些迹象,您可能能够检测到与您的 Redis 实例相关的潜在利用。

  • 来自未经授权或未知来源对 Redis 数据库的访问
  • 流入 Redis 数据库的未知或异常网络流量
  • 未知或意外地使用 EVAL 和 SCRIPT FLUSH 命令
  • 无法解释的 Redis 服务器崩溃,特别是源自 Lua 引擎堆栈跟踪的崩溃
  • redis-server 用户执行未知、意外或异常的命令
  • 从 Redis 数据库发出的未知或异常网络出站流量(或尝试)
  • 文件系统的未知或异常更改,特别是托管 Redis 持久化或配置文件的目录中的更改

致谢

我们感谢以下研究人员通过我们发布的流程研究并报告了这些漏洞: 

  • CVE 2024-46981 由 p33zy 与 Trend Micro 零日计划合作报告
  • CVE-2024-51480 由 iddm (Shockingly God) 报告
  • CVE-2024-55656 由 Ricardo Silva (@rick2600) 和 Gabriel Quadros (@gqsilva) 与 Trend Micro 零日计划合作报告。