近日,全球广泛使用的内存数据库 Redis 被曝存在一个极其严重的远程代码执行漏洞——CVE-2025-49844,代号 “RediShell”。该漏洞 CVSS 评分为满分 10.0,属于最高危级别,已在 Redis 源码中潜伏长达 13 年!本文将深入解析漏洞原理、影响范围、攻击链路,并提供详细的修复与加固建议,帮助企业和开发者快速响应,避免系统被攻陷。

🔍 漏洞概述:一个潜伏13年的“完美10分”漏洞
2025年10月3日,Redis 官方发布安全公告,正式披露了编号为 CVE-2025-49844 的严重安全漏洞。该漏洞由网络安全公司 Wiz Research 的研究员 Benny Isaacs 和 Nir Brakha 在参与趋势科技零日计划(ZDI)时发现,并在柏林 Pwn2Own 大赛期间向 Redis 团队提交。
令人震惊的是,这一漏洞自 2012 年左右就已存在于 Redis 源代码中,至今已有 超过13年未被察觉,堪称“数字时代的定时炸弹”。
漏洞的 CVSS 评分为 10.0,是极为罕见的“完美风暴”级漏洞,意味着其可被远程利用、无需复杂条件,且一旦成功即可完全控制服务器。
⚠️ 漏洞原理:Lua 脚本中的“释放后使用”(UAF)
CVE-2025-49844 是一个典型的 “释放后使用”(Use-After-Free, UAF) 内存破坏漏洞,根源在于 Redis 内嵌的 Lua 解释器。
核心攻击机制如下:
触发点:恶意 Lua 脚本
Redis 支持通过EVAL和EVALSHA命令执行 Lua 脚本,用于实现复杂的原子操作。攻击者可以构造一个特制的恶意 Lua 脚本。操控垃圾回收器
该脚本会精心操控 Redis 的内存管理机制,特别是 Lua 的垃圾回收(GC)流程,在对象被释放后仍保留对其的引用。突破沙箱限制
正常情况下,Lua 脚本运行在沙箱中,无法执行系统命令。但通过 UAF 漏洞,攻击者可以绕过沙箱保护,执行任意原生代码。远程代码执行(RCE)
成功利用后,攻击者可在 Redis 服务所在的主机上执行任意命令,获得系统级控制权限,进而:窃取敏感数据(如用户信息、数据库凭证)
安装挖矿程序或勒索软件
横向渗透至内网其他系统
建立持久化后门(如反向 Shell)
✅ 前提条件:攻击者需具备对 Redis 实例的 认证访问权限。但若实例未设置密码或暴露在公网,则极易被利用。
🌍 影响范围:所有支持 Lua 的 Redis 版本均受影响!
根据官方公告和 Wiz 研究团队分析,所有支持 Lua 脚本功能的 Redis 版本均受此漏洞影响,包括:
开源版本(OSS/CE)
企业版(Redis Stack, Redis Software)
云托管服务(部分已自动修复)
❌ 受影响版本:
| Redis 分支 | 修复前版本 |
|---|---|
| 6.2.x | < 6.2.20 |
| 7.0.x / 7.2.x | < 7.2.11 |
| 7.4.x | < 7.4.6 |
| 8.0.x | < 8.0.4 |
| 8.2.x | < 8.2.2 |
✅ 已修复版本:请立即升级至上述对应分支的最新补丁版本。
💡 特别提醒:使用 Redis Cloud 的用户通常已由服务商自动完成升级,但仍建议确认所用实例是否已完成修复。
📊 风险现状:33万个实例暴露,6万无密码!
Wiz 研究团队指出,当前互联网上仍有约 33 万个 Redis 实例直接暴露在公网,其中 超过 6 万个未配置任何身份验证,处于极度危险状态。
由于 Redis 被用于 约 75% 的云环境,涉及缓存、会话存储、消息队列等关键场景,一旦被攻破,可能导致:
数据泄露与篡改
业务中断(DoS)
云环境横向移动,造成更大范围失陷
被用于发起 DDoS 或加密货币挖矿
🔐 攻击链还原:从 Lua 脚本到全面沦陷
以下是 RediShell 漏洞的典型攻击流程:
初始访问:攻击者通过弱密码爆破、配置错误或供应链攻击获取 Redis 认证权限。
发送恶意脚本:调用
EVAL执行特制 Lua 脚本,触发 UAF 漏洞。沙箱逃逸:利用内存破坏实现任意代码执行。
建立持久化通道:开启反向 Shell,连接攻击者控制的 C2 服务器。
提权与横向移动:读取
.ssh密钥、IAM 令牌、环境变量等,进一步渗透内网。数据窃取或勒索:导出数据库内容,或部署勒索软件加密文件。
✅ 修复与缓解措施
1. 立即升级 Redis 版本
这是最根本、最有效的解决方案。请根据当前使用的 Redis 分支,升级至以下安全版本:
Redis 6.2 → 升级至 6.2.20
Redis 7.2 → 升级至 7.2.11
Redis 7.4 → 升级至 7.4.6
Redis 8.0 → 升级至 8.0.4
Redis 8.2 → 升级至 8.2.2
🔗 官方下载地址:https://redis.io/download
2. 临时缓解方案(无法立即升级时)
若因业务原因无法立即升级,可采取以下临时措施降低风险:
禁用 Lua 脚本命令:通过 ACL(访问控制列表)撤销用户对
EVAL、EVALSHA、SCRIPT等命令的执行权限。强化身份验证:确保
requirepass已设置高强度密码,避免使用默认端口(6379)或更改监听地址为内网 IP。网络访问控制:通过防火墙、安全组或 VPC 策略,仅允许可信 IP 访问 Redis 端口,禁止公网暴露。
最小权限运行:不要以
root用户运行 Redis 服务,建议创建专用低权限账户。
3. 监控与入侵检测
检查是否存在以下异常行为,判断是否已被攻击:
未知来源的数据库连接
异常的网络出入流量(尤其是外连 C2 服务器)
Redis 日志中出现频繁的
EVAL调用或崩溃记录系统中出现未知进程(如挖矿程序)
.ssh目录被读取或写入
建议启用 Redis 日志审计,并集成 SIEM 系统进行实时告警。
🛡️ 最佳安全实践建议
绝不将 Redis 暴露在公网
强制启用密码认证
定期更新 Redis 到最新稳定版
使用 ACL 实现细粒度权限控制
部署 WAF 或数据库防火墙进行行为监控
对敏感环境进行渗透测试与漏洞扫描
📢 一次敲响警钟的安全事件
CVE-2025-49844(RediShell) 不仅是一个技术漏洞,更是对整个 DevOps 和云安全体系的一次严峻考验。它提醒我们:
再成熟的开源项目,也可能隐藏致命缺陷;再基础的中间件,一旦失守,后果不堪设想。
作为开发者、运维人员或企业安全负责人,请务必高度重视此次漏洞,立即排查并修复所有 Redis 实例,尤其是那些暴露在互联网上的服务。
安全无小事,防患于未然。





















