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” ![maxresdefault (1)](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/2f555b0b0d124112.jpg) **世界上最快的内存存储系统中的关键远程代码执行漏洞** Redis Lua 脚本功能刚刚成为完美的认证后攻击着陆点。 ![CVSS Badge](https://img.shields.io/badge/CVSS-10.0-critical?style=for-the-badge&logo=security&logoColor=white&color=red) ![Status Badge](https://img.shields.io/badge/Status-Public_Exploits-red?style=for-the-badge&logo=exploit&logoColor=white) ![Type Badge](https://img.shields.io/badge/Type-Use-After-Free-orange?style=for-the-badge) ![Discovered Badge](https://img.shields.io/badge/Discovered-May_2025-blue?style=for-the-badge&logo=calendar) **已认证攻击者 → 构造的 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 -p 6379 -a password > EVAL "crafted_lua_that_triggers_uaf_and_execs_shell" 0 ``` 全副武装的 PoC 在几天内就出现在 GitHub 上(内存泄露 → ROP → shell)。 许多包含 ASLR 绕过、NX/DEP 规避和持久化选项。 ## 🛡️ 检查与修复(2026 年 3 月) ### 1. 检查版本 ``` redis-cli INFO SERVER | grep redis_version ``` → 如果低于上述修补版本则为易受攻击 ### 2. 立即修补 - 升级到最新稳定版(推荐 8.2.x+) - 对于托管服务 (AWS/Azure/GCP):强制升级或确认已应用补丁 ### 3. 加固 - 如果不需要,**完全禁用 Lua**: # 在 redis.conf 或 ACL 中 acl setuser default off ~* &* +@all -EVAL -EVALSHA -SCRIPT - 绑定到 localhost / 使用 TLS + 强认证 - 防火墙:将 TCP/6379 限制为受信任的 IP - 监控异常的 `EVAL` 使用情况 ## 📈 状态 — 2026 年 3 月 - 针对未修补的云/旧版实例的攻击利用依然活跃 - Redis 依然无处不在 → 高价值目标 - 生态系统转变:许多组织现在默认禁用 Lua 脚本 ## 🎓 经验教训 - 13 年的 Bug 隐藏在嵌入式解释器中 - 通过内存损坏实现沙箱逃逸 = 瞬间 RCE - 已认证**并不**意味着安全 — 尤其是在暴露的服务上 - **快速修补,更快禁用高风险功能**
标签:CISA项目, CTF学习, Cutter, CVE-2025-49844, CVSS 10.0, Exploit, Lua沙箱逃逸, PE 加载器, PoC, RCE, RediShell, Redis漏洞, rizin, Shellcode, UAF, Web报告查看器, XXE攻击, 中间件安全, 内存损坏, 内网渗透, 协议分析, 后认证攻击, 垃圾回收操纵, 技术调研, 搜索引擎查询, 暴力破解, 权限提升, 编程工具, 远程代码执行, 释放后重用, 高危漏洞