Redis 2026-08 双 RCE 漏洞排查修复笔记
背景
2026 年 8 月底 Redis 连续放出两个高危远程代码执行(RCE)漏洞,均涉及内存安全问题,建议尽早评估并升级。
CVE 列表:
- CVE-2026-81934(QVD-2026-58458):TLS 待处理链表 use-after-free
- CVE-2026-66373:stream consumer-group double-free(CVE-2026-25243 补丁绕过)
CVE-2026-81934:TLS 待处理链表 use-after-free
触发点
tlsProcessPendingData() 使用 adlist 迭代器遍历 TLS pending 链表时,存在释放后使用。
危害
- 无需加载模块、写文件或附加调试器。
- 仅通过正常 TLS 命令接口构造堆布局与时序,即可实现任意地址读写。
- 最终以
redis-server权限执行系统命令。
评分
- 官方初始 CVSS:9.8
- Redis 自评 CVSS v4.0:7.5
自评降级原因:需要认证、低权限用户、协调 TLS 会话以及特定运行时条件。
修复版本
| 分支 | 修复版本 |
|---|---|
| 8.10 | 8.10.1 |
| 8.8 | 8.8.2 |
| 8.6 | 8.6.6 |
| 8.4 | 8.4.6 |
| 8.2 | 8.2.9 |
| 7.4 | 7.4.11 |
| 7.2 | 7.2.16 |
| 6.2 | 6.2.24 |
CVE-2026-66373:stream double-free
触发点
stream consumer-group 中共享 NACK 对象存在 double-free,属于 CVE-2026-25243 的补丁绕过。
攻击方式
攻击者需通过认证,可组合:
XGROUPEVAL/EVAL_RORESTORE
构造流操作序列触发。
危害
- 需要认证。
- 触发后可能导致崩溃或进一步利用。
- 与 CVE-2026-81934 对比,攻击前置条件更多,但同样危险。
受影响版本
官方确认以下版本低于修复版本:
- Redis < 8.6.5
- Redis < 8.4.5
- Redis < 8.2.8
- Redis < 7.4.10
- Redis < 7.2.15
- Redis < 6.2.23
请升级至上述对应版本或更高版本。
升级建议
- 生产环境优先升级到当前分支的最新修复版。
- 若无法立即升级,先按缓解措施封锁攻击面。
- 升级前在测试环境验证业务兼容性,尤其是 ACL、脚本和流相关功能。
缓解措施
按优先级排列:
- 不使用 TLS 则直接禁用 TLS 端口:
tls-port 0 - 限制网络访问,只允许可信 IP 连接
- 设置强密码:
requirepass - 使用 ACL 最小化默认用户权限,显式禁用高危命令
rename-command禁用或重命名EVAL、EVAL_RO、XGROUP、RESTORE等- 绝不要把 Redis 直接暴露公网
配置片段
以下配置可直接下发给 Redis 实例(redis.conf 或配置中心):
# 禁用 TLS(若不使用 TLS)
tls-port 0
# 仅监听内网/本机,禁止公网绑定
bind 127.0.0.1 10.0.0.10
protected-mode yes
# 强密码认证
requirepass "CHANGE_ME_LONG_RANDOM_STRING"
# 关闭默认用户,避免匿名访问
user default off
# 创建最小权限用户(按需调整)
# 仅允许应用需要的命令和 key 空间
user app on ">CHANGE_ME_APP_PASSWORD" ~* +@all -@admin -@dangerous -eval -eval_ro -xgroup -restore
# 禁用高危命令(亦可彻底改名)
rename-command EVAL ""
rename-command EVAL_RO ""
rename-command XGROUP ""
rename-command RESTORE ""
注意:
- 以上配置为紧急缓解,不能替代完整升级。
- ACL 配置中
-@dangerous仅在 Redis 7.0+ 有效,旧版本请逐条列命令。 rename-command在 Redis 7.0+ 已标记为不推荐,但当前仍可生效;优先使用 ACL 的-语法。- 如果你确实使用
EVAL/XGROUP/RESTORE,使用 ACL 白名单精确控制,不要全盘打开。
检查清单
- 确认当前 Redis 版本是否受上述漏洞影响
- 检查
INFO server中redis_version和tls状态 - 确认 redis 是否绑定公网 IP
- 检查是否开启
tls-port - 确认
requirepass是否为空 - 确认默认用户
default是否可用 - 确认
RESTORE/EVAL/XGROUP命令是否实际被使用,若未使用立即禁用 - 升级后重启 Redis,并逐项验证业务功能
- 关注 Redis 官方后续安全公告,确认无其他补丁绕过
原文未提供两种漏洞的利用代码或攻击样本,以上信息仅来自官方公告描述。