Redis修复一个远程代码执行漏洞CVE-2024-46981
Redis(Remote Dictionary Server)即远程字典服务,是一款开源高性能键值对数据库,也是高性能、灵活且易于扩展键值存储数据库。
Redis 支持多种数据结构,值(value)是字符串(String)、列表(List)、集合(Set)、有序集合(Sorted Set)、哈希(Hash)等。
一、基本情况
Redis 远程字典服务器是完全开源免费的,其采用C语言编写的,遵守BSD开源协议,Redis 的高性能主要源于基于内存存储数据的特性。
Redis 高性能的(key/value)分布式内存数据库基于内存运行并支持持久化的NoSQL(非关系型)数据库,通常也称为数据结构服务器。
Redis 适用于各种应用场景,可以作为缓存、数据库和消息中间件等,具有出色的性能和稳定性,以其独特的优势被广泛应用于众多场景。
栋科技漏洞库关注到 Redis 数据库软件近期修复了一个代码执行漏洞,该漏洞现已追踪为CVE-2024-46981,该漏洞的CVSS评分为7.0。
二、漏洞分析
CVE-2024-46981漏洞是Redis的Lua脚本引擎在处理内存管理时存在的漏洞,允许经过身份验证的用户可使用Lua脚本来操纵垃圾收集器。
该漏洞允许经过身份证验证的用户利用特制Lua脚本来操纵内存回收机制,通过Redis提供的EVAL和EVALSHA命令运行该恶意 Lua 脚本。
如此即可使得攻击者可能利用该漏洞在 Redis 服务器上执行任意代码,从而导致远程代码执行,该漏洞已在7.4.2、7.2.7和6.2.17中修复。
在不修补redis-server可执行文件的情况下缓解该漏洞还可通过阻止用户执行Lua脚本,可通过使用ACL来限制EVAL和EVALSHA命令实现。
三、影响范围
Redis < 7.4.2
Redis < 7.2.7
Redis < 6.2.17
若 Redis 配置未限制 Lua 脚本执行(例如通过 ACL 配置限制 EVAL 和 EVALSHA 命令),则使用 Lua 脚本的 Redis 会受到该漏洞影响。
四、修复建议
目前该漏洞已经修复,受影响用户可升级到以下版本:
Redis >= 7.4.2
Redis >= 7.2.7
Redis >= 6.2.17
五、参考链接