dot Redis 8 已发布——而且它是开源的

了解更多

安全公告:CVE-2024-31449、CVE-2024-31227、CVE-2024-31228

发生了什么?

作为 Redis 社区和 Redis 持续努力维护 Redis 安全、保障和合规态势的一部分,最近发布了 Redis 的三个安全漏洞。

这些漏洞是什么?

[CVE-2024-31449] 已认证的用户可能利用 Lua 库命令实现远程代码执行。CVSS 评分:7.0  (高)

Redis 内嵌了 Lua 引擎,以支持用户脚本的执行。该引擎处理这些脚本并在 Redis 数据库的上下文中运行它们。 

已认证的用户可以使用特制的 Lua 脚本触发位库中的堆栈缓冲区溢出,这可能导致远程代码执行。

利用此漏洞执行的任何命令都将在拥有 Redis 进程的用户和组的上下文中运行。 

[CVE-2024-31228] 由于无界模式匹配导致拒绝服务。CVSS 评分:5.5  (中等)

已认证的用户可以通过在支持的命令(如 KEYS、SCAN、PSUBSCRIBE、FUNCTION LIST、COMMAND LIST 和 ACL 定义)上使用特制的长字符串匹配模式来触发拒绝服务。匹配极长的模式可能导致无界递归,从而引发堆栈溢出和进程崩溃。

[CVE-2024-31227] 由于格式错误的 ACL 选择器导致拒绝服务。CVSS 评分:4.4 (中等)

具有足够权限的已认证用户可以创建格式错误的 ACL 选择器,当访问该选择器时,会触发服务器崩溃并随后导致拒绝服务。

如何保护您的 Redis 实例?   

暴露于这些漏洞需要攻击者获得对您的 Redis 实例的访问权限。

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

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

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

我该如何修复?  

我们已经升级了我们的 Redis Cloud 服务并应用了修复,因此您无需执行额外操作。

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

这些新版本的 Redis OSS、CE、Stack 和软件包含了修复程序,因此升级后应该就没有问题了。

受影响的版本已修复的版本
[CVE-2024-31449] 已认证的用户可能利用 Lua 库命令实现远程代码执行。CVSS 评分:7.0 (高)所有 Redis 软件版本• 7.4.2-169 及更高版本
• 7.2.4-109 及更高版本
• 6.4.2-110 及更高版本
• 7.4.6 – 所有构建版本 
• 7.6.0 – 所有构建版本 (非 GA)
• 7.8.0 – 所有构建版本 (非 GA)
所有 Redis OSS/CE/Stack 版本OSS/CE:
• 7.4.1
• 7.2.6
• 6.2.16 
Stack
• 7.4.0-v1
• 7.2.0-v13
• 6.2.6-v17
[CVE-2024-31228] 由于无界模式匹配导致拒绝服务。CVSS 评分:5.5 (中等)所有 Redis 软件版本• 7.4.2-169 及更高版本
• 7.2.4-109 及更高版本
• 6.4.2-110 及更高版本
• 7.4.6 – 所有构建版本 
• 7.6.0 – 所有构建版本 (非 GA)
• 7.8.0 – 所有构建版本 (非 GA)
所有 Redis OSS/CE/Stack 版本OSS/CE:
• 7.4.1
• 7.2.6
• 6.2.16 
Stack
• 7.4.0-v1
• 7.2.0-v13
• 6.2.6-v17
[CVE-2024-31227] 由于格式错误的 ACL 选择器导致拒绝服务。CVSS 评分:4.4 (中等)Redis 软件不受影响不适用
所有 Redis OSS/CE/Stack 7.0.0 或更新版本OSS/CE
• 7.4.1
• 7.2.6
Stack
• 7.4.0-v1
• 7.2.0-v13

我如何判断是否已经受到影响?

我们没有证据表明 Redis 或客户环境中发生了此漏洞的利用。

这不是一份全面的指南,但它是一个您可以根据您的需求和操作环境进行调整的通用建议。

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

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

鸣谢?

我们感谢以下研究人员如此热心地识别这些漏洞并通过我们公布的流程进行报告: 

  • CVE-2024-31449 由深圳安克创新科技有限公司的 nkki-zsyang 报告
  • CVE-2024-31227 由 Axel Mierczuk 报告
  • CVE 2024-31228 由 tomistripping 报告