CVE-2025-49844修复指导
漏洞背景
经过身份验证的用户可以使用特别构建的Lua脚本来操作垃圾收集器,触发释放后使用,并可能导致远程代码执行。
漏洞影响范围:Redis内核版本(小于4.0.14.27、5.0.14.10、6.2.20.0) 的所有版本。
漏洞分析
Redis漏洞触发条件困难,需同时满足以下条件才可触发:
- Redis实例可被外网访问。
- 开启免密访问或密码泄露的实例。
漏洞排查
漏洞规避
- 如果存在外网访问用户可以开启白名单配置或者暂时关闭公网访问。 图4 白名单配置
- 如果存在免密访问或密码泄露的实例请及时开启密码认证或者修改密码。 图5 重置密码
图6 修改密码
漏洞修复方式
- 漏洞版本升级
- 修复版本上线后,新建实例会自动修复。
- 历史实例需要小版本升级。
图7 实例小版本升级
- 命令重命名方式禁用
涉及业务原有执行语句修改,配置后需重启存在业务中断,不推荐。
- 适用范围:Redis4、5、6 单机、主备、cluster集群
操作示例:
- 访问路径/opt/dcs/data/{实例id-ip-port}/ 查看实例节点上redis禁用命令文件。
disable_cmd_list.conf
图8 示例图
- 修改disable_cmd_list.conf,添加命令重命名信息。
rename-command EVAL EVAL123 rename-command EVALSHA EVALSHA123
图9 示例图
或者直接通过空串禁用,禁用后命令将不可用。
rename-command EVAL ‘’ rename-command EVALSHA ‘’
图10 示例图
图11 示例图
注意事项:
需要逐个访问所有节点执行一遍上述操作,所有节点执行命令重命名添加完毕后,重启实例生效(业务会中断,依赖客户端具备重连机制)。
风险点:
黑屏修改命令重命名注入过程,如果上述rename-command指令输入有误,实例重启后会导致节点启动异常,以及上述节点访问修改不全时留有隐患,即后续发生主备节点切换后,新主节点命令禁用内容未生效风险。
- 访问路径/opt/dcs/data/{实例id-ip-port}/ 查看实例节点上redis禁用命令文件。
- 适用范围:Redis4、5、6 proxy、读写分离类型实例
操作示例:
修改proxy.conf,添加命令重命名信息。
proxy-rename-commands eval:eval123,evalsha:evalsha123
图12 示例图
注意事项:
需要逐个访问所有proxy节点执行一遍上述操作,所有节点执行命令重命名添加完毕后,重启实例生效(业务会中断,依赖客户端具备重连机制)。
风险点:
黑屏修改命令重命名注入过程,如果上述rename-command指令输入有误,实例重启后会导致节点启动异常,以及上述节点访问修改不全时留有隐患,即后续发生主备节点切换后,新主节点命令禁用内容未生效风险。
- 适用范畴:Redis3.0 单机、主备
同2.a,区别点:修改路径为/opt/dcs/redis/redis/disable_cmd_list.conf。
图13 示例图
注意事项:
需要逐个访问所有节点执行一遍上述操作,所有节点执行命令重命名添加完毕后,重启实例生效(业务会中断,依赖客户端具备重连机制)。
风险点:
黑屏修改命令重命名注入过程,如果上述rename-command指令输入有误,实例重启后会导致节点启动异常,以及上述节点访问修改不全时留有隐患,即后续发生主备节点切换后,新主节点命令禁用内容未生效风险。
- 适用范围:Redis4、5、6 单机、主备、cluster集群
附录
- 在ServiceOM查找所有的大规格虚拟机名称。 图14 Redis 4.0/5.0物理资源列表
- 登录DCS-Server-01节点,通过脚本跳转到大规格虚拟机节点。
cd /opt/cloud/DCS-Server/bin python login_bms.py ${bare_vm_name}图15 示例图
- 执行以下语句查看EVAL或EVALSHA执行情况。
grep cmdstat_ eval /opt/dcs/data/*/info/*-00-00-00.data
图16 示例图


