Redis hyperloglog远程代码执行漏洞CVE-2025-32023
Redis 是一种高性能的开源键值存储数据库,Redis HyperLogLog是用来做基数统计的算法,不会储存元素的本身,不会返回输入的元素。
在Redis里每个HyperLogLog键只需花费12KB内存,就可以计算接近 264 个元素的基数,因此计算基数占用的空间总是固定的且非常小。
HyperLogLog并非Redis一家独有,Redis只基于HyperLogLog算法实现可一个HyperLogLog数据结构,并用该数据结构提供基数统计功能。
一、基本情况
HyperLogLog 是一种用于估计大规模数据集基数(即集合中不同元素的数量)的概率性算法,支持多个数据集并集,结果估计值误差小。
HyperLogLog的核心原理是通过哈希函数将元素映射为二进制串,统计各分桶中最大前导零数目,然后再利用调和平均数估计集合基数。
栋科技漏洞库关注到Redis hyperloglog受影响版本中存在远程代码执行漏洞,该漏洞现已追踪为CVE-2025-32023,漏洞的CVSS评分7.0。
二、漏洞分析
2025年7月,官方安全通告披露Redis hyperloglog存在越界写入致远程代码执行漏洞,影响2.8到8.0.3、7.4.5、7.2.10和6.2.19之前版本。
漏洞源于解析 HyperLogLog稀疏编码数据时未充分验证其操作码中的长度,构造恶意数据可能导致在HyperLogLog操作中触发整数溢出。
经身份验证用户使用特制字符串在hyperloglog操作中触发堆栈/堆越界写入,导致远程代码执行,影响所有实现超级日志操作的Redis版本。
漏洞已在8.0.3、7.4.5、7.2.10、6.2.19修复,若不修补redis-server可执行文件则使用ACL来限制HLL命令阻止用户执行hyperloglog操作。
由于该漏洞的利用需要攻击者通过Redis身份认证,因此建议用户加强 Redis 权限校验以及设置强密码,防止未授权或者利用弱口令访问。
三、影响范围
2.8 <= Redis < 6.2.19
Redis 7.2.* < 7.2.10
Redis 7.4.* < 7.4.5
Redis 8.0.* < 8.0.3
四、修复建议
Redis >= 6.2.19
Redis 7.2.* >= 7.2.10
Redis 7.4.* >= 7.4.5
Redis 8.0.* >= 8.0.3
五、参考链接
