
Redis 最近发布了关于 CVE-2025-49844 的安全通告。这个关键(CVSS 10.0)的用后释放(UAF)漏洞在 Lua 脚本中可能允许经过身份验证的攻击者在启用 Lua 脚本的旧版本的 Redis 和 Valkey 上执行远程代码。强烈建议开发者尽快升级到修补后的版本。
利用所谓的“RediShell”远程代码执行漏洞,经过身份验证的用户可以使用特别制作的脚本来操纵垃圾收集器,触发用后释放,并可能远程执行任意代码。
这个漏洞利用了 Redis 中一个 13 年的 UAF 内存损坏错误,允许一个经过身份验证的攻击者发送一个经过制作的 Lua 脚本来逃离默认的 Lua 沙箱并执行任意的本地代码。这授予了攻击者完整的主机访问权限,使他们可以实现数据盗窃、擦除、加密、资源劫持和在云环境中的横向移动。Redis 的首席信息安全官 Riaz Lakhani 警告:
利用这个漏洞需要攻击者首先获得对你的 Redis 实例的经过身份验证的访问权限。你可以采取几个步骤来保护你的 Redis 不被恶意行为者访问。
在其安全通告中,Redis 建议遵循安全最佳实践,通过防火墙和网络策略限制网络访问,强制执行强身份验证,并限制权限,只允许可信身份运行 Lua 脚本或其他潜在风险命令。
攻击一开始,攻击者发送一个恶意的 Lua 脚本,该脚本利用用后释放漏洞,逃离 Lua 沙箱,并实现任意代码执行。然后攻击者可以建立一个反向 shell 以实现持续访问和系统破坏,例如从 Redis 中窃取敏感数据、安装恶意软件或窃取凭证。此外,在公共云服务提供商上,被盗的 IAM 令牌可以用来访问其他云服务、提升权限并移动到其他系统。这个漏洞最初是由 Wiz 研究人员 Benny Isaacs、Nir Brakha 和 Sagi Tzadik报告的,他们写道:
鉴于 Redis 在约 75%的云环境中被使用,其潜在影响是巨大的。强烈敦促组织立即修补实例,优先修补那些暴露在互联网上的实例。
虽然没有证据表明这个漏洞曾经被利用过,但 Wiz 发现了 330,000 个暴露在互联网上的 Redis 实例,包括超过 60,000 个没有配置身份验证的实例,以及 57%的云环境安装 Redis 作为容器镜像,许多没有适当的安全加固。
Momento 的生态系统工程师 Allen Helton 和 AWS Hero,以及 Momento 的联合创始人兼首席执行官 Khawaja Shams 发表了一篇关于保护 Redis 和 Valkey 集群的文章。Shams 在 LinkedIn 上总结:
CVE-2025-49844 允许攻击者逃离 Lua 沙箱并在主机上执行代码。这已经够糟糕了。但更大的问题呢?我们经常看到客户在 VPC 内的缓存集群仍然没有运行身份验证。即使在你修补之后,你网络中的任何人或任何东西都可以连接到你的缓存并开始操纵数据,都不需要暴露。如果你今天只能采取一个行动——那就为你的 Valkey 节点设置密码。其他一切都可以等待。
Rust 顾问 Matthias Endler 质疑所使用的语言是否是主要问题,并评论:
13 年。这就是在最受欢迎的 C 开源代码库之一 Redis 中发现一个关键安全漏洞所需的时间。这是由世界上一些最好的工程师精心编写的软件,然而,错误仍然可能发生!在 C 中,“错误”通常意味着一个内存安全错误,这会使用户数据处于风险之中(⋯⋯)。这就是 C 中内存安全错误的本性:它们可以隐藏在众目睽睽之下。
修复已经回溯到所有支持的版本。根据 Redis 文档,开发者应该更新到 7.22.2-20 或更高版本,7.8.6-207 或更高版本,7.4.6-272 或更高版本,7.2.4-138 或更高版本,或 6.4.2-131 或更高版本。Valkey,Redis 的一个分支,也受到影响,并发布了以下版本来解决这个问题:7.2.11,8.0.6 和 8.1.4。
原文链接:Redis Critical Remote Code Execution Vulnerability Discovered after 13 Years








评论