【高危】Redis hyperloglog 越界写入导致远程代码执行漏洞
漏洞描述
Redis HyperLogLog 是一种概率性数据结构,它能以极小的、恒定的内存空间来高效地估算一个集合中不重复元素的数量(即基数)。
受影响版本中,在解析 HyperLogLog 稀疏编码数据时,由于未能充分验证其操作码中的运行长度(run-length),攻击者可构造恶意数据导致累加索引时发生整数溢出,进而绕过边界检查,最终引发堆内存的越界写入。
修复版本通过增加一个 valid 标志位,在检测到索引计算即将溢出时立即将数据标记为无效并中断处理循环,从而阻止了后续的越界写入操作。
MPS编号 | MPS-8hrg-zfb6 |
---|---|
CVE编号 | CVE-2025-32023 |
处置建议 | 建议修复 |
发现时间 | 2025-07-07 |
利用成本 | 中 |
利用可能性 | 高 |
是否有POC | 是 |
影响范围
影响组件 | 受影响的版本 | 最小修复版本 |
---|---|---|
redis | [8.0.0, 8.0.3) | 8.0.3 |
redis | [2.8, 6.2.19) | 6.2.19 |
redis | [7.4.0, 7.4.5) | 7.4.5 |
redis | [7.2.0, 7.2.10) | 7.2.10 |
参考链接
https://github.com/redis/redis/security/advisories/GHSA-rp2m-q4j6-gr43
https://www.oscs1024.com/hd/MPS-8hrg-zfb6
https://github.com/redis/redis/commit/50188747cbfe43528d2719399a2a3c9599169445
排查方式
手动排查
检查Redis版本:执行redis-server --version
或redis-cli info server | grep redis_version
获取版本
判断是否受影响:若版本在8.0.0≤v<8.0.3、2.8≤v<6.2.19、7.4.0≤v<7.4.5、7.2.0≤v<7.2.10范围内,需修复
建议修复操作:升级至8.0.3+、6.2.19+、7.4.5+或7.2.10+版本
一键自动排查全公司此类风险
墨菲安全为您免费提供一键排查全公司开源组件漏洞&投毒风险服务,可一键接入扫描全公司的代码仓库、容器镜像仓库、主机、制品仓库等。
试用地址:https://www.murphysec.com/apply?code=93XQ
提交漏洞情报:https://www.murphysec.com/bounty
处置方式
应急缓解方案
- 限制Redis服务访问来源,仅允许受信任IP地址连接
- 临时禁用HyperLogLog相关命令(如PFADD、PFCOUNT、PFMERGE),可通过Redis配置文件中的rename-command指令重命名相关命令
- 启用Redis身份验证机制,设置复杂密码并定期更换
- 如非必要,关闭Redis的公网访问权限,确保服务仅在内部网络暴露
根本修复方案
- 对于redis@[8.0.0, 8.0.3)版本,升级至8.0.3或更高版本
- 对于redis@[2.8, 6.2.19)版本,升级至6.2.19或更高版本
- 对于redis@[7.4.0, 7.4.5)版本,升级至7.4.5或更高版本
- 对于redis@[7.2.0, 7.2.10)版本,升级至7.2.10或更高版本
- 升级完成后重启Redis服务,并验证版本信息
- 实施Redis定期安全更新机制,确保及时获取并应用安全补丁