CVE-2025-46819CVE-2025-46819是Redis开源内存数据库中的一个中等严重性安全漏洞,存在于所有启用Lua脚本功能的Redis版本中。该漏洞允许经过身份验证的低权限用户通过精心构造的恶意Lua脚本实现越界数据读取,或导致Redis服务器崩溃进而引发拒绝服务攻击。Redis作为广泛使用的内存数据结构存储系统,常被用于缓存、消息队列、会话存储等关键业务场景,一旦被利用可能导致敏感数据泄露或服务中断,对业务连续性构成严重威胁。该漏洞的CVSS 3.1评分为6.3分,攻击向量为本地(AV:L),攻击复杂度较高(AC:H),需要低权限认证(PR:L),无需用户交互(UI:N),对机密性影响为高(C:H),对完整性无影响(I:N),对可用性影响为高(A:H)。Redis官方已在8.2.2版本中修复了该问题,建议所有使用受影响版本的用户尽快升级以消除安全隐患。该漏洞由GitHub安全顾问团队发现并报告,体现了开源社区在安全协作方面的重要作用。对于无法立即升级的环境,可以通过访问控制列表(ACL)限制EVAL和FUNCTION命令族的使用来阻止用户执行Lua脚本,从而达到临时缓解的目的。
该漏洞的核心问题存在于Redis的Lua脚本执行引擎中。Redis通过嵌入的Lua解释器来执行用户提交的脚本,以实现原子性操作和复杂业务逻辑。然而,在脚本执行过程中,对内存边界检查存在缺陷,导致攻击者可以通过精心构造的Lua脚本触发越界内存访问。具体利用方式如下:攻击者首先需要拥有一个有效的Redis认证账户(低权限即可),然后通过EVAL或EVALSHA命令提交特制的Lua脚本。该脚本利用Redis Lua引擎中的内存管理缺陷,在处理字符串、表格或其他数据结构时绕过边界检查,从而实现以下两种攻击效果:(1)越界读取:读取Redis进程内存中超出预期范围的数据,可能泄露其他用户的键值数据、配置信息或其他敏感内容;(2)拒绝服务:通过触发未定义内存访问导致Redis进程崩溃(Segfault),使所有依赖Redis的服务不可用。由于攻击需要本地访问(AV:L)且复杂度较高(AC:H),实际利用门槛相对较高,但一旦成功,影响较为严重。该漏洞影响所有包含Lua脚本功能的Redis版本,修复版本8.2.2中增加了对Lua脚本执行时的内存边界检查,从根本上解决了越界访问问题。