Redis HyperLogLog 操作中的远程代码执行
CVE-2025-32023 是 Redis 数据库中的一个远程代码执行(RCE)漏洞,具体影响 HyperLogLog 数据结构操作的处理。该缺陷允许已认证用户通过提交特制字符串触发基于栈或堆的越界写入,从而可能导致在服务器上执行任意代码。该漏洞源于在处理稀疏 HyperLogLog 编码时发生的整数溢出。该漏洞由 GitHub, Inc. 报告(具体发现者未公开披露),自 Redis 2.8 版本起即存在。
能够访问易受攻击的 Redis 实例的已认证攻击者可利用此漏洞在服务器上执行任意代码,从而可能导致系统完全沦陷。这可能造成敏感数据未授权访问、安装持久化后门或服务中断。在 Redis 用于高性能缓存或数据处理的场景中,该漏洞尤为关键,因为它可能使关键基础设施暴露于攻击之下。
本仓库包含针对 CVE-2025-32023 的漏洞利用脚本。请将下面的占位命令替换为运行脚本的具体说明。
# Example usage (replace with actual commands for your script):
git clone https://github.com/atomicjjbod/CVE-2025-32023.git
cd CVE-2025-32023
chmod +x exploit
./exploit --host <redis_host> --port <redis_port>
注意:请确保已安装必要的依赖(例如 Python、Redis 客户端库)。请在受控环境中测试该漏洞利用程序,以避免意外后果。
PFADD、PFCOUNT、PFMERGE)。ACL 配置示例:
ACL SETUSER username -~pf*
该漏洞源于处理稀疏 HyperLogLog 编码时发生的整数溢出。具体而言,在迭代稀疏 HyperLogLog 数据时,长度计数器(int i)可能因畸形输入而溢出为负值,从而导致在栈或堆上发生越界写入。攻击者可能利用这一点破坏内存并执行任意代码,具体取决于上下文(例如,hllMerge 使用栈分配的结构,而 hllSparseToDense 使用堆分配的结构)。
Redis 通过增加边界检查并修正 HyperLogLog 操作中长度计数器的处理方式修复了该问题。修复包含在以下提交中:Redis Commit 50188747。
截至 2025 年 7 月 10 日,尚未有 CVE-2025-32023 在野外被大规模利用的报告。然而,公开的概念验证代码已经可用,这增加了定向攻击的风险。强烈建议 Redis 用户及时应用补丁并实施推荐的缓解措施,以保护其系统安全。