
全球最快内存存储中的严重远程代码执行漏洞
Redis Lua 脚本执行区域现已成为认证后的完美着陆点。
经过认证的攻击者 → 精心构造的 Lua 脚本 → 逃逸沙箱 → 在宿主机上实现完全 RCE
CVE-2025-49844(“RediShell”)是 Redis 嵌入式 Lua 脚本引擎中一个严重的释放后使用(UAF)内存破坏漏洞。
一个经过认证的用户通过 EVAL/EVALSHA 提交一个精心构造的 Lua 脚本,该脚本操纵垃圾收集器,在解析/执行过程中触发 UAF,逃逸 Lua 沙箱,并在底层宿主机上实现任意代码执行。
该漏洞潜伏在 Redis 源代码中约 13 年(自早期 Lua 集成起),影响几乎所有启用了 Lua 的版本,直到 2025 年 10 月被修复。
“一次恶意的 EVAL 调用,即可完全接管服务器。2025–2026 年的 Redis 变得有趣了。”
2026 年 3 月的现实:
Redis 嵌入 Lua 5.x 用于脚本(EVAL、EVALSHA、函数等)。
该缺陷存在于 Lua 解析器/垃圾收集器交互中:
EVAL 发送精心构造的 Lua 脚本luaY_parser)过程中,一个 TString 对象被分配但未被保护在 Lua 栈上关键致命点:Lua 沙箱从未针对内存破坏原语进行加固。
存在漏洞:所有在 2025 年 10 月补丁之前启用了 Lua 脚本功能的 Redis 版本
已修复版本:
2026 年常见攻击目标:
变通方案(补丁前):
EVAL、EVALSHA、SCRIPT LOAD 等现实攻击流程(高级别,来自公开分析):
EVAL 脚本,触发 UAF + 内存泄露示例单行骨架(非完整利用 – 仅供说明):
redis-cli -h <target> -p 6379 -a password
> EVAL "crafted_lua_that_triggers_uaf_and_execs_shell" 0
完整的武器化 PoC 在几天内出现在 GitHub 上(内存泄露 → ROP → shell)。
许多包含 ASLR 绕过、NX/DEP 规避和持久化选项。
redis-cli INFO SERVER | grep redis_version
→ 如果版本低于上述已修复版本,则存在漏洞
# 在 redis.conf 或 ACL 中
acl setuser default off ~* &* +@all -EVAL -EVALSHA -SCRIPT
EVAL 使用| 日期 | 事件 |
|---|
| 约 2012 年 | 引入存在漏洞的 Lua 集成 |
| 2025 年 5 月 | Wiz 发现并在 Pwn2Own 柏林演示 |
| 2025 年 10 月 3 日 | 公开披露 + Redis 安全公告 |
| 2025 年 10 月 3 日 | 发布修复版本(6.2.20+、7.x、8.x) |
| 2025 年 10 月 6–7 日 | Wiz/Sysdig/Redrays 博客 + 初始 PoC |
| 2025 年 10 月+ | 出现利用仓库(GitHub、实验室) |
| 2026 年 3 月 | 针对遗留/云环境的漏洞利用仍在持续 |