作为 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 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 实例相关的潜在利用。
我们感谢以下研究人员如此热心地识别这些漏洞并通过我们公布的流程进行报告: