Redis 严重安全漏洞 CVE-2025-49844 解析
| 技术2025年10月3日,Redis 官方发布了一个严重的安全公告,披露了一个关键的远程代码执行(RCE)漏洞 —— CVE-2025-49844,也被称为 “RediShell”。该漏洞 CVSS 评分高达 10.0(严重),影响所有支持 Lua 脚本的 Redis 版本。
漏洞概述
CVE-2025-49844 是一个 use-after-free(释放后使用) 内存损坏漏洞,在 Redis 源代码中已经存在约 13 年。
该漏洞由安全研究人员 Wiz 在 Pwn2Own Berlin 2025 大赛中发现并报告,于2025年5月提交,Redis 官方于2025年10月3日发布补丁。
影响范围
受影响版本:
- Redis 8.2.2 以下
- Redis 8.0.4 以下
- Redis 7.4.6 以下
- Redis 7.2.11 以下
- Redis 6.2.20 以下
Redis Cloud 用户已自动修复,无需手动操作。
漏洞原理
RediShell 利用了 Redis Lua 脚本子系统中垃圾回收机制的对象活性验证不足。攻击过程如下:
- 发送恶意 Lua 脚本:攻击者发送特制的 Lua 脚本
- 内存损坏:脚本操纵垃圾回收器,释放仍被活动对象引用的内存
- 沙箱逃逸:释放后使用条件允许在 Lua 沙箱之外执行代码
- 获得主机访问权限:攻击者获得 Redis 宿主系统的原生代码执行权限
攻击前提
- 默认情况下 Redis 不启用身份验证
- 很多开发者不会在部署中启用认证
- 漏洞利用需要已认证访问(或 Redis 未设置密码且暴露在公网)
危害后果
攻击者成功利用漏洞后可以:
- 窃取凭据
- 部署恶意软件
- 从 Redis 中提取敏感数据
- 横向移动到其他系统
- 获取云服务的访问权限
修复方案
立即升级
Redis 升级到:
- 8.2.2 及以上
- 8.0.4 及以上
- 7.4.6 及以上
- 7.2.11 及以上
- 6.2.20 及以上
临时缓解措施
如果无法立即升级,可采用以下措施:
- 限制 EVAL/EVALSHA 命令:使用 ACL(访问控制列表)限制 Lua 脚本执行命令
- 启用身份验证:设置强密码并启用认证
- 启用 protected-mode:在 Redis 配置中设置
protected-mode yes - 禁止公网访问:确保 Redis 不暴露到互联网
- 使用防火墙:限制网络访问仅限可信来源
- 以非 root 用户运行:限制潜在攻击的影响范围
- 禁用 Lua 脚本:如果应用不需要 Lua 脚本功能,可以禁用
安全建议
- 优先修补暴露在公网的 Redis 实例
- 实施网络分段,防止横向移动
- 定期检查 Redis 版本,及时更新
- 遵循最小权限原则配置 ACL