跑 Redis 的今晚别睡:RediShell CVE-2025-49844,CVSS 10.0,一段 Lua 打穿宿主机
2026 年 10 月 3 日,Redis 和 Wiz 联合披露了一个核弹级漏洞:CVE-2025-49844,代号 RediShell,CVSS 10.0(NVD 后续微调为 9.9)。Redis 内嵌的 Lua 引擎里藏着一个 use-after-free,藏了 13 年。已认证的攻击者发一段特制的 Lua 脚本,就能逃出 Lua 沙箱,在宿主机上执行任意原生代码。

先说结论:补丁昨天已经发布,自建 Redis 今天就得升级。云托管(ElastiCache、Memorystore、阿里云等)大多已自动更新;凡是自己运维的实例,版本低于修复线就是裸奔。Wiz 扫出来的数字很刺眼:全球约 33 万 Redis 公网可达,其中约 6 万连密码都没设——“需要认证才能利用”这个前提,在这 6 万台机器上根本不存在。
这 13 年是怎么藏住的
时间线值得细看:
- 约 2012 年:有问题的代码写进 Redis,Lua 垃圾回收(GC)机制存在 UAF 缺陷;
- 2025 年 5 月 16 日:Wiz 研究员在 Pwn2Own Berlin 现场演示利用,并向 Redis 报告;
- 2026 年 10 月 3 日: embargo 结束,Redis 与 Wiz 联合披露,补丁同步发布;
- 2026 年 10 月 6 日:Wiz 公开完整技术博客。
13 年,横跨无数次代码审计和安全 review,没人发现。这不是 Redis 第一次出 Lua 相关问题,但这是第一个被评为 Critical 的 Redis 原生漏洞。原因很微妙:漏洞藏在 Lua 解释器和 Redis 的 GC 交互逻辑里——攻击者用精心构造的 Lua 脚本操纵垃圾回收器的行为,触发 use-after-free,把原本只能跑在沙箱里的小脚本,变成宿主机上的任意代码执行。

完整的攻击链是这样的:
- 攻击者连上 Redis(EVAL 是默认开启的功能);
- 发送特制 Lua 脚本,操纵 GC 触发 UAF;
- 逃逸 Lua 沙箱,执行宿主机原生代码;
- 反弹 shell,拿到宿主机完全控制权;
- 收割:SSH 私钥、云厂商 IAM token、证书;
- 横向移动:内网漫游、挖矿、勒索加密。
第 5 步是最要命的。Redis 通常跑在应用内网的核心位置,拿下一台 Redis 宿主机,等于拿到了云上身份凭证的提款机。Wiz 特别指出:多数云上 Redis 是以”未经安全加固的容器镜像”跑的,默认配置 + 公网暴露 + 无密码,三重 debuff 叠满。
影响版本和修复线
| 分支 | 修复版本 |
|---|---|
| Redis OSS 8.x | 8.2.2 及以上 |
| Redis OSS 8.0 | 8.0.4 及以上 |
| Redis OSS 7.4 | 7.4.6 及以上 |
| Redis OSS 7.2 | 7.2.11 及以上 |
| Redis Stack 7.4 | 7.4.0-v7 及以上 |
| Redis Stack 7.2 | 7.2.0-v19 及以上 |
注意:7.0 及更早分支已经 EOL,不会有补丁,只能升级大版本。查版本一条命令:
1 | redis-cli INFO server | grep redis_version |
现在就做这四件事

1. 查版本。 低于上表修复线的,自建实例今天就安排升级窗口。INFO server 一把梭。
2. 查认证和暴露面。 这两条命令:
1 | redis-cli CONFIG GET requirepass # 为空 = 没设密码,高危 |
Wiz 的 6 万台”无认证公网 Redis”就是这么被扫出来的。内网也不能裸奔——打穿一台应用服务器,内网 Redis 就是下一个跳板。
3. 应急止血。 来不及升级的,先用 ACL 把 Lua 相关命令限死:
1 | # 给应用账号去掉脚本执行权限,只保留必要的读写命令 |
Lua 脚本业务如果根本不用,直接 rename-command EVAL "" 禁掉最干净。另外确认 Redis 不是 root 在跑。
4. 复查。 升级后 INFO server 确认版本已达修复线;ACL LIST 确认无多余权限;检查 slowlog 和可疑客户端连接,确认窗口期内没被光顾过。
写在最后
从 GitLab 的路径遍历到 Redis 的 RediShell,10 月第一周已经是第二个 CVSS 9.9+ 的现货了。剧本完全一样:披露即开抢,补丁窗口按小时算。上次 GitLab 是披露当天就出现野外扫描,这次 Wiz 把 33 万暴露实例的数字直接摆在了台面上——扫描器可不会等你排期。
DBCheck 这边,Redis 巡检引擎已经上线,RediShell 就是头条规则:版本低于修复线直接高危告警,附带把”无密码””公网暴露””无持久化”这些经典裸奔项一次扫出来。老规矩,dbcheck.org,上传采集包就能拿完整报告,免费。
原文作者: liups.com
原文链接: http://liups.com/posts/d8d98844/
许可协议: 知识共享署名-非商业性使用 4.0 国际许可协议