Redis stream NACK 双重释放远程代码执行漏洞
摘要
Redis stream consumer group 的 NACK 恢复逻辑存在双重释放风险。攻击者在具备 Redis 命令执行权限的情况下,可通过 RESTORE 构造异常 stream RDB 数据,使两个 consumer 共享同一个 streamNACK 结构;随后通过 XGROUP DELCONSUMER 触发释放流程,造成 use-after-free / double free。进一步利用堆布局、地址泄漏和任意读写原语,最终将 Redis 进程内函数指针劫持到 system 调用,从而在 Redis 服务端执行系统命令。
正文
Impact: 远程代码执行漏洞可能导致的危害包括但不限于: 1. 完全控制服务器:攻击者可以执行系统命令,获取服务器的完全控制权。 2. 数据泄露:攻击者可以访问、修改或删除服务器上的敏感数据。 3. 网站篡改:攻击者可以修改网站内容,进行钓鱼攻击或其他形式的欺诈。 4. 持久性后门:攻击者可以在服务器上安装后门,以便未来随时访问。 5. 服务中断:攻击者可以通过破坏服务器正常运行来导致服务中断。 Mitigation: 临时解决方案: 禁止 Redis 端口暴露到公网或不可信网络;使用防火墙、安全组、Kubernetes NetworkPolicy 等限制访问来源;禁用 default 用户或为其设置强密码;按最小权限原则配置 ACL,禁止业务账号执行 RESTORE、EVAL、XGROUP、CONFIG、DEBUG 等高危命令;监控异常 RESTORE、XGROUP DELCONSUMER、EVAL tostring(string.format)、二进制 key 和大量短 key 喷射行为。
标签
- severity:high
- source:chaitin
- type:vuln
扩展字段
{
"cnnvd_id": null,
"cnvd_id": null,
"cve_id": null,
"cvss3": null,
"raw_updated_at": "2026-07-23T16:09:31.605142+08:00",
"references": [],
"severity": "high",
"vuln_id": "a61185f0-b718-476a-a606-daefbfe07f32"
}