Redis高危漏洞CVE-2025-49844(RediShell)曝光:潜伏13年,CVSS评分10.0!立即升级修复

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

Redis高危漏洞CVE-2025-49844(RediShell)曝光:潜伏13年,CVSS评分10.0!立即升级修复


🔍 漏洞概述:一个潜伏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 解释器

核心攻击机制如下:

  1. 触发点:恶意 Lua 脚本
    Redis 支持通过 EVALEVALSHA 命令执行 Lua 脚本,用于实现复杂的原子操作。攻击者可以构造一个特制的恶意 Lua 脚本。

  2. 操控垃圾回收器
    该脚本会精心操控 Redis 的内存管理机制,特别是 Lua 的垃圾回收(GC)流程,在对象被释放后仍保留对其的引用。

  3. 突破沙箱限制
    正常情况下,Lua 脚本运行在沙箱中,无法执行系统命令。但通过 UAF 漏洞,攻击者可以绕过沙箱保护,执行任意原生代码。

  4. 远程代码执行(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 漏洞的典型攻击流程:

  1. 初始访问:攻击者通过弱密码爆破、配置错误或供应链攻击获取 Redis 认证权限。

  2. 发送恶意脚本:调用 EVAL 执行特制 Lua 脚本,触发 UAF 漏洞。

  3. 沙箱逃逸:利用内存破坏实现任意代码执行。

  4. 建立持久化通道:开启反向 Shell,连接攻击者控制的 C2 服务器。

  5. 提权与横向移动:读取 .ssh 密钥、IAM 令牌、环境变量等,进一步渗透内网。

  6. 数据窃取或勒索:导出数据库内容,或部署勒索软件加密文件。


✅ 修复与缓解措施

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(访问控制列表)撤销用户对 EVALEVALSHASCRIPT 等命令的执行权限。

    1# redis.conf 配置示例
    2acl deny-command EVAL EVALSHA SCRIPT
  • 强化身份验证:确保 requirepass 已设置高强度密码,避免使用默认端口(6379)或更改监听地址为内网 IP。

  • 网络访问控制:通过防火墙、安全组或 VPC 策略,仅允许可信 IP 访问 Redis 端口,禁止公网暴露。

  • 最小权限运行:不要以 root 用户运行 Redis 服务,建议创建专用低权限账户。

3. 监控与入侵检测

检查是否存在以下异常行为,判断是否已被攻击:

  • 未知来源的数据库连接

  • 异常的网络出入流量(尤其是外连 C2 服务器)

  • Redis 日志中出现频繁的 EVAL 调用或崩溃记录

  • 系统中出现未知进程(如挖矿程序)

  • .ssh 目录被读取或写入

建议启用 Redis 日志审计,并集成 SIEM 系统进行实时告警。


🛡️ 最佳安全实践建议

  1. 绝不将 Redis 暴露在公网

  2. 强制启用密码认证

  3. 定期更新 Redis 到最新稳定版

  4. 使用 ACL 实现细粒度权限控制

  5. 部署 WAF 或数据库防火墙进行行为监控

  6. 对敏感环境进行渗透测试与漏洞扫描


📢 一次敲响警钟的安全事件

CVE-2025-49844(RediShell) 不仅是一个技术漏洞,更是对整个 DevOps 和云安全体系的一次严峻考验。它提醒我们:

再成熟的开源项目,也可能隐藏致命缺陷;再基础的中间件,一旦失守,后果不堪设想。

作为开发者、运维人员或企业安全负责人,请务必高度重视此次漏洞,立即排查并修复所有 Redis 实例,尤其是那些暴露在互联网上的服务。

安全无小事,防患于未然。

发表评论

评论列表

还没有评论,快来说点什么吧~