2025年10月初,Redis生态曝出一则“致命漏洞”——Lua脚本引擎存在释放后重用漏洞,被安全研究机构Wiz命名为“RediShell”(CVE-2025-49844)。该漏洞CVSS评分高达9.8分(最高风险等级),攻击者可突破Lua沙箱限制,直接在受影响的Redis实例上实现“主机级远程代码执行”。更严峻的是,截至2025年10月27日,CriminalIP数据显示,全球仍有超8500个Redis实例暴露在公网且未修复,这些实例成为黑客自动化攻击的“重点目标”,尤其在未启用认证的环境中,攻击者无需任何凭证即可轻松渗透。本文将从漏洞本质、全球风险分布、利用原理及防护措施四方面,为企业提供“应急避险指南”。

一、漏洞核心概况:一个“遗留13年”的致命缺陷

RediShell并非“新漏洞”,其根源可追溯至2012年Redis引入的一段易受攻击代码路径,属于长期未被发现的“历史遗留缺陷”。随着漏洞细节在2025年10月初公开,其“高风险、易利用”的特性迅速引发全球关注。以下为漏洞关键属性梳理:

  • 漏洞名称:RediShell(释放后重用漏洞)
  • CVE编号:CVE-2025-49844
  • 漏洞类型:内存破坏(释放后重用)
  • 受影响组件:Redis Lua脚本引擎(Redis核心功能模块)
  • 风险等级:严重(CVSS 3.1 9.8分,网络攻击向量,无需认证)
  • 受影响版本:Redis 8.2.1及更早版本(覆盖绝大多数在用实例)
  • 利用门槛:极低——未启用认证的实例,攻击者可直接投递恶意Lua脚本;即使有基础认证,部分弱口令环境也易被突破
  • 核心危害:实现主机级远程代码执行(RCE),攻击者可接管服务器、窃取数据、部署挖矿程序或勒索软件,甚至横向渗透企业内网

值得注意的是,Redis作为全球流行的“内存数据库+缓存系统”,广泛应用于电商、社交、金融等行业的后端架构,其暴露在公网的实例总数已达5.9万余个(CriminalIP数据),而8500+未修复实例仅是“已被识别的高风险目标”,实际隐患可能更甚。

二、全球风险地图:美法德成重灾区,50%高危实例集中三国

从CriminalIP披露的全球分布数据来看,RediShell漏洞的影响呈现“区域集中化”特征,部分地区因企业安全意识薄弱或遗留系统多,成为漏洞攻击的“重灾区”:

  1. 美国:以1887个易受攻击实例居首,占全球总量的22.2%。主要原因是美国中小企业及开发者普遍将Redis用于测试环境,且习惯“临时暴露公网、不启用认证”,给黑客可乘之机;
  2. 法国:1324个实例受影响,占比15.6%。法国制造业、零售业的老旧IT系统中,大量Redis实例未及时更新,且网络隔离措施不到位;
  3. 德国:929个实例受影响,占比10.9%。德国工业场景中,Redis常被用于工业数据缓存,部分实例因“担心业务中断”拒绝升级,导致漏洞持续存在。

上述三国的易受攻击实例合计占全球总量的50%以上,反映出这些地区企业在“开源组件安全管理”上的短板——要么忽视版本更新,要么简化安全配置,最终沦为黑客攻击的“突破口”。

三、技术原理:突破Lua沙箱,从“缓存服务”到“入侵入口”

Redis为保障Lua脚本执行安全,设计了“Lua沙箱”机制,限制脚本仅能访问Redis内部API,无法直接操作主机系统。但RediShell漏洞通过“操纵垃圾回收(GC)行为”,彻底突破了这一限制,其利用过程可分为三步:

1. 投递恶意Lua脚本

攻击者向受影响的Redis实例发送特制Lua脚本,脚本中包含“释放后重用”的触发逻辑——通过刻意构造的内存操作,让Redis的Lua引擎在“释放内存块后,再次引用该内存块”,导致内存数据混乱。

2. 逃逸Lua沙箱

当内存混乱触发后,Lua沙箱的权限控制机制失效,恶意脚本可突破“仅访问Redis API”的限制,获取Redis进程的系统权限(通常为redis用户或更高权限)。此时,脚本已具备“操作主机文件、执行系统命令”的能力。

3. 实现远程代码执行

逃逸沙箱后,攻击者可通过脚本执行一系列恶意操作:

  • 安装反向Shell,建立与攻击者控制端的持久连接;
  • 窃取服务器上的敏感数据(如数据库凭证、用户信息);
  • 部署加密货币挖矿程序,占用服务器算力;
  • 植入勒索软件,加密企业核心数据并索要赎金;
  • 利用该服务器作为“跳板”,扫描并渗透企业内网其他设备。

简言之,原本用于“数据缓存”的Redis实例,因这一漏洞变成了黑客的“入侵入口”,且整个攻击过程可通过自动化工具完成,几分钟内即可接管服务器。

四、防护指南:四步紧急处置,阻断漏洞利用

面对RediShell漏洞的高风险,企业需按“优先级”采取措施,尤其针对暴露在公网的Redis实例,需在24小时内完成应急处置:

1. 优先升级:安装官方修复补丁(最根本措施)

Redis官方已发布修复版本,所有受影响企业应立即将Redis升级至8.2.2及以上版本(或对应分支的修复版本,如6.x分支的6.2.15、7.x分支的7.4.1)。官方补丁通过修复Lua引擎的内存管理逻辑,彻底封堵“释放后重用”的漏洞路径。

  • 官方下载地址:Redis官方下载页
  • 升级注意事项:升级前需备份Redis数据,避免因版本兼容性导致数据丢失;若为集群部署,建议采用“滚动升级”方式,确保业务不中断。

2. 临时防护:未升级前的“应急措施”

若因业务依赖暂时无法升级,需立即启用以下临时措施,降低漏洞利用风险:

  • 启用认证机制:通过requirepass配置Redis密码(建议使用强密码,含大小写、数字及特殊字符),或启用ACL(访问控制列表)精细化管控权限,避免“无凭证访问”;
  • 网络隔离:在防火墙或安全组中限制6379端口(Redis默认端口)的访问范围,禁止公网IP直接访问,仅允许企业内网的信任IP段连接;
  • 禁用Lua执行命令:通过rename-command EVAL ""rename-command EVALSHA ""配置,禁用Redis的EVALEVALSHA命令(这两个命令是执行Lua脚本的核心入口),需注意:此措施可能影响依赖Lua脚本的业务,需提前评估兼容性。

3. 资产排查:定位暴露的高风险实例

企业需通过以下方式全面排查Redis资产,避免遗漏风险:

  • 利用端口扫描工具(如Nmap)扫描内网及公网IP段,识别开放6379端口的Redis实例;
  • 结合威胁情报平台(如CriminalIP、Shodan)查询企业公网IP下的Redis实例,确认是否在“易受攻击列表”中;
  • 对排查出的实例,通过redis-server -v命令检查版本,标记出8.2.1及更早版本的实例,优先处置。

4. 持续监控:及时发现攻击尝试

在完成防护配置后,需启用监控机制,警惕黑客的利用尝试:

  • 监控Redis日志(默认路径为/var/log/redis/redis-server.log),重点关注异常的EVAL/EVALSHA命令执行记录,或来自陌生IP的连接请求;
  • 部署入侵检测系统(IDS/IPS),添加RediShell漏洞的特征规则,拦截恶意Lua脚本的投递流量;
  • 定期查看服务器进程、端口占用情况,发现未知进程(如挖矿程序、反向Shell)立即终止并溯源。

五、总结:开源组件安全,“及时更新”是底线

RediShell漏洞的爆发再次提醒企业:开源组件的“历史遗留缺陷”可能成为致命风险。Redis作为使用量超百万的开源工具,其漏洞影响范围之广、利用门槛之低,凸显出企业在“开源组件生命周期管理”上的不足——很多企业仅关注“功能可用性”,却忽视“版本安全性”,甚至为“避免麻烦”长期使用未修复漏洞的旧版本。

对企业而言,此次漏洞的应对不仅是“临时补丁”,更应借此建立“开源组件安全管理体系”:定期扫描资产版本、及时跟进官方安全公告、启用必要的访问控制与网络隔离。唯有如此,才能在“开源工具便利”与“系统安全”之间找到平衡,避免成为下一次漏洞攻击的“受害者”。

Logo

加入社区!打开量化的大门,首批课程上线啦!

更多推荐