文章总结: Redisstream消费组NACK双重释放远程代码执行漏洞(CVE-2026-25243补丁绕过)被披露,影响Redis6.2.22、7.4.9、8.6.4等版本。攻击者需认证,利用复杂度低,POC已公开。根因是rdbLoadObject加载PEL时缺少重复归属校验,导致双重释放。建议立即升级至8.8.0或应用补丁,并加强访问控制与运行时降权。 综合评分: 89 文章分类: 漏洞预警,漏洞分析,安全工具,安全建设
漏洞预警丨Redis stream 消费组 NACK 双重释放远程代码执行漏洞(CVE-2026-25243 补丁绕过)
原创
烽火台实验室 烽火台实验室
Beacon Tower Lab
2026年7月23日 17:27 北京
在小说阅读器读本章
去阅读
一、漏洞概述
| | | | — | — | | 漏洞类型 | 认证后远程代码执行(RCE)/ 双重释放 | | 漏洞等级 | 高危 | | 漏洞编号 | CVE-2026-25243(补丁绕过变体) | | 漏洞评分 | 8.8(CVSS v3.1,AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) | | 利用复杂度 | 低 | | 影响版本 | Redis 6.2.22、7.4.9、8.6.4(< 8.8.0) | | 利用方式 | 远程(需认证) | | POC/EXP | 已公开 |
近期,互联网上披露了 Redis stream 消费组(consumer group)持久化加载过程中存在 streamNACK 双重释放漏洞。攻击者在获得合法认证凭据后,可通过 RESTORE 投递构造好的 RDB 流对象,触发消费组共享 NACK 双重释放,进而结合 jemalloc tcache 双重分配实现任意地址读写,最终在 redis-server 进程内执行任意系统命令。为避免您的业务受影响,建议您及时开展安全风险自查。
Redis 是当前最广为使用的开源内存键值数据库之一,常被用作缓存、消息队列与会话存储,在金融、电商、互联网等行业的关键业务中大量部署。Redis 默认以长驻进程运行,且生产环境普遍直接暴露或通过内网可达 6379 端口,一旦被攻陷可直接导致宿主机沦陷。
据描述,该漏洞根因在于 rdbLoadObject 加载 stream 消费组 PEL(待处理条目)时,将同一个全局 PEL 的 streamNACK 指针的 consumer 字段先后指向两个不同的 consumer,缺少重复归属校验。如此一来,同一个 64 字节的 streamNACK 被两个 consumer 共享;当先后 XGROUP DELCONSUMER 删除这两个 consumer 时,该结构被释放两次,造成 jemalloc tcache bin-64 双重释放。攻击者利用该双重释放,通过精心构造 SETEX/SET/APPEND/SETRANGE 序列,使受害 sds 与已释放 chunk 别名,构造伪造的 kvobj,进而以 GETRANGE/SETRANGE 实现任意地址读、任意地址写;再借助 Lua string.format 闭包作为地址预言机泄露 PIE 基址与 libc 基址,最终覆写 dict.hashFunction 指向 jmp *[rdi+0x78] gadget,使哈希函数调用退化为 system(trigger),完成命令执行。利用完成后恢复 hashFunction,服务进程保持正常对外服务,隐蔽性强。该利用链对官方镜像二进制偏移为启动不变量,且当前版本无需 DEBUG 命令即可完成全链路。
漏洞影响的产品和版本:
- Redis 6.2.22(官方镜像 redis:6.2.22,已实测复现)
- Redis 7.4.9(官方镜像 redis:7.4,已实测复现)
- Redis 8.6.4(官方镜像 redis:8.6,已实测复现)
- 更广泛地,凡存在该消费组 PEL 加载逻辑且未应用修复的版本均受影响;Redis 8.8.0 及以上版本已通过 PR #15081 重构修复,不受影响。
二、漏洞复现
三、资产测绘
据 daydaymap 数据显示互联网存在2,281,980个资产,风险资产分布情况如下。
全球分布:
国内分布:
四、解决方案
升级修复(首选):
将 Redis 升级至 8.8.0 及以上版本。该版本已通过 PR #15081 重构修复此类问题,从根本消除攻击面。
应用补丁:
对无法立即升级的版本,合并官方修复补丁(commit 3ce48f92b6e9be42c41c40a4efabe97f8224d9c4)。补丁在 rdbLoadObject 加载 stream 消费组 PEL 时新增 nack->consumer != NULL 守卫,当某个 streamNACK 已被先前 consumer 认领时,直接判定 RDB 损坏并中止加载(报 Bad data format),阻断共享 NACK 的形成。
访问控制加固:
- 强制强口令认证(requirepass 或 ACL),避免弱口令、空口令暴露;
- 禁止 Redis 直接暴露在公网,仅允许受信内网访问,并通过安全组/防火墙限制 6379 端口来源;
- 使用 ACL 最小权限,对非必要客户端关闭 RESTORE、EVAL、XGROUP 等危险命令,关闭 DEBUG 命令(enable-debug-command no,Redis 7+ 默认关闭);
- 禁用或限制 Lua、CONFIG、MODULE 等高危指令面。
运行时降权:
以低权限专用用户运行 redis-server,配合只读文件系统与 capabilities 收敛,限制 RCE 后横向影响。
监测与自查:
排查 Redis 是否使用了不受影响版本;审计是否存在异常 RESTORE/XGROUP DELCONSUMER 调用模式;关注 redis-server 异常崩溃或异常子进程派生行为。
五、参考链接
Redis 官方仓库与修复 PR #15081:https://github.com/redis/redisCVE-2026-25243(本漏洞为其补丁绕过变体)官方修复补丁提交:commit 3ce48f92b6e9be42c41c40a4efabe97f8224d9c4(Reject corrupt stream RDB with shared NACK across consumers)
六、ddpoc链接
https://www.ddpoc.com/DVB-2026-11505.html
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:Beacon Tower Lab 烽火台实验室 烽火台实验室《漏洞预警丨Redis stream 消费组 NACK 双重释放远程代码执行漏洞(CVE-2026-25243 补丁绕过)》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论