CVE-2025-62507Redis是美国Redis Labs公司的一套开源的使用ANSI C编写的、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。该产品被广泛应用于缓存系统、消息队列、实时分析等场景。CVE-2025-62507漏洞是一个存在于Redis 8.2.0及以上版本中的高危安全漏洞,源于XACKDEL命令在处理多个消息ID时存在栈缓冲区溢出问题。攻击者通过构造特定的XACKDEL命令请求,使用多个消息ID触发栈缓冲区溢出条件,可能导致Redis服务崩溃或实现远程代码执行。该漏洞的CVSS评分为8.8,属于高危级别,对使用受影响版本Redis的企业和个人用户构成严重安全威胁。攻击者仅需低权限即可发起攻击,无需用户交互,且可通过网络远程利用。Redis官方已在8.2.3版本中修复了此漏洞,建议所有使用Redis 8.2.0及以上版本的用户尽快升级到修复版本或采取临时缓解措施。
Redis Stream是Redis 5.0引入的数据结构,用于支持消息队列功能。XACKDEL命令是Redis Stream中用于删除待处理消息列表中已确认消息的命令。在Redis 8.2.0版本中,XACKDEL命令的实现存在栈缓冲区溢出漏洞。当用户执行XACKDEL命令并传入多个消息ID时,命令处理函数在解析和复制这些ID到栈上的缓冲区时,未进行充分的边界检查。具体来说,在xackCommand函数的实现中,程序将多个消息ID复制到固定大小的栈缓冲区中,但未验证总长度是否超出缓冲区容量。当ID数量足够多或单个ID长度较大时,会导致栈缓冲区溢出,覆盖相邻的栈内存区域,包括函数返回地址等关键数据。攻击者可以通过精心构造恶意请求,利用栈溢出覆盖返回地址,将程序执行流劫持到攻击者控制的代码位置,从而实现远程代码执行。此漏洞影响所有使用Redis Stream功能且允许用户执行XACKDEL命令的场景。