0xAshwesker/CVE-2025-49844
GitHub: 0xAshwesker/CVE-2025-49844
CVE-2025-49844 (RediShell) 是 Redis 嵌入式 Lua 脚本引擎中的 UAF 内存损坏漏洞 PoC,允许已认证攻击者绕过沙箱实现远程代码执行。
Stars: 0 | Forks: 0
# 🚨 CVE-2025-49844 — “RediShell”

**世界上最快的内存存储系统中的关键远程代码执行漏洞**
Redis Lua 脚本功能刚刚成为完美的认证后攻击着陆点。




**已认证攻击者 → 构造的 Lua 脚本 → 逃离沙箱 → 在主机上实现完整 RCE**
## ⚠️ 概述
**CVE-2025-49844** ("**RediShell**") 是 **Redis** 嵌入式 Lua 脚本引擎中的一个**关键的释放后使用 (UAF)** 内存损坏漏洞。
一名**已认证**的用户通过 `EVAL` / `EVALSHA` 提交特制的 Lua 脚本,操纵垃圾回收器,在解析/执行期间触发 UAF,逃离 Lua 沙箱,并在底层主机上实现**任意代码执行**。
该漏洞潜伏在 Redis 源代码中约 **13 年**(自早期 Lua 集成以来),并在 2025 年 10 月修补前影响了几乎所有启用了 Lua 的版本。
## 🔥 严重程度与影响
- **CVSS v3.1 基本分数**:**10.0 / 严重** (AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H)
- **攻击矢量**:网络(Redis TCP 端口,通常为 6379)
- **权限要求**:低(任何具有脚本执行权限的已认证 Redis 用户)
- **用户交互**:无
- **漏洞利用成熟度**:披露后不久即发布了公开的 PoC 和漏洞利用工具
**2026 年 3 月的现实情况**:
- 公开漏洞利用针对 reverse shell、持久化、挖矿 Payload
- 云环境中的高风险(缓存层、会话存储、队列)
- 结合弱认证/暴露的 Redis → 导致完整基础设施沦陷
- 许多旧版部署、Docker 镜像和托管服务仍处于脆弱状态
## 🕵️ 发现与致谢
- 由 **Wiz Research** 团队发现
- 通过 **Pwn2Own Berlin** 报告(2025 年 5 月)
- 协调披露:2025 年 10 月 3 日(Redis 公告 + 补丁)
- 被 Wiz 命名为 **"RediShell"**(意为通过 Lua 逃逸实现类 Shell 的 RCE)
## 🔬 技术深度剖析
Redis 嵌入了 Lua 5.x 用于脚本执行(`EVAL`、`EVALSHA`、函数等)。
该缺陷存在于 Lua 解析器/GC 交互中:
1. 攻击者通过 `EVAL` 发送特制的 Lua 脚本
2. 在解析期间(`luaY_parser`),一个 `TString` 对象被分配但**未受保护**于 Lua 栈上
3. GC 提前运行 → 释放该对象
4. 后续代码使用已释放的内存 → UAF 原语
5. 攻击者利用链式攻击泄露内存,绕过 ASLR,ROP/return-to-libc → 在沙箱外实现任意原生代码执行
**关键致命点**:Lua 沙箱从未针对内存损坏原语进行过加固。
## 📅 时间线
| 日期 | 事件 |
|-------------------|--------------------------------------------|
| **~2012** | 引入了存在漏洞的 Lua 集成 |
| **2025 年 5 月** | Wiz 在 Pwn2Own Berlin 发现并演示 |
| **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, labs) |
| **2026 年 3 月** | 针对旧版/云设置的攻击持续进行 |
## 🖥️ 受影响的系统
**易受攻击**:**所有 Redis 版本**,在 2025 年 10 月补丁**之前**且启用了 Lua 脚本功能
**修复版本**:
- Redis 8.2.2+
- Redis 8.0.4+
- Redis 7.4.6+
- Redis 7.2.11+
- Redis 6.2.20+
**2026 年的常见攻击目标**:
- 云缓存/会话存储 (AWS ElastiCache, Azure Cache, GCP Memorystore)
- 使用默认 Redis 镜像的 Docker/K8s 部署
- 使用 Redis < 7.x 的旧版应用
- 暴露的 Redis 实例(无认证或弱密码)
**缓解措施**(修补前):
- 通过 ACL 禁用 Lua 脚本:拒绝 `EVAL`, `EVALSHA`, `SCRIPT LOAD` 等。
- 强制执行强认证 + 网络限制
## 💥 公开漏洞利用与 PoC
**现实攻击流程**(高级别,源自公开分析):
1. 认证到 Redis(如有需要则提供密码)
2. 发送触发 UAF + 内存泄露的特制 `EVAL` 脚本
3. 利用泄露击败 ASLR
4. 链式利用 ROP gadgets → 生成 reverse shell / 执行 payload
**示例单行框架**(非完整漏洞利用 – 仅供演示):
```
redis-cli -h 标签:CISA项目, CTF学习, Cutter, CVE-2025-49844, CVSS 10.0, Exploit, Lua沙箱逃逸, PE 加载器, PoC, RCE, RediShell, Redis漏洞, rizin, Shellcode, UAF, Web报告查看器, XXE攻击, 中间件安全, 内存损坏, 内网渗透, 协议分析, 后认证攻击, 垃圾回收操纵, 技术调研, 搜索引擎查询, 暴力破解, 权限提升, 编程工具, 远程代码执行, 释放后重用, 高危漏洞