一、摘要
最近漏洞扫描服务器发现,Redis 缓冲区溢出漏洞(CVE-2024-31449),办理办法redis更新到6.2.16、7.2.6或7.4.1及以上版本。
二、漏洞描述
漏洞描述:经过身份验证的用户大概会使用特制的 Lua 脚原来触发位库中的堆栈缓冲区溢出,这大概会导致长途代码执行。所有带有 Lua 脚本的 Redis 版本都存在该问题。
目前受影响的Redis版本:
2.6 ≤ Redis < 6.2.16
7.0.0 ≤ Redis < 7.2.6
7.4.0 ≤ Redis < 7.4.1
三、旧redis版本
1.检察旧redis版本信息
- # 登录redis客户端
- redis-cli
- # 输入密码
- auth password
- # 查看redis版本
- info
复制代码
2.备份redis数据
(1)检察目前redis的key
从下图可知,目前redis中所有的key值只有4条数据
(2)备份数据
- # 登录redis客户端
- redis-cli
- # 备份命令
- SAVE
- 或
- BGSAVE
复制代码
3.检察备份文件地点
- # 登录redis客户端
- # 通过命令找到备份的数据文件
- config get dir
- config get dbfilename
复制代码
4.将旧redis安装目录备份
比方:旧redis安装目录在/usr/local/redis7
备份旧目录
- mv /usr/local/redis7 /usr/local/redis7_20241024.bak
复制代码 四、安装新版本redis
1.下载redis安装包
下载地点:Index of /releases/
大家可以自行选择redis的版本,笔者选择redis是不在漏洞范围内的7.2.6版本
2.安装redis
(1)执行安装
- # 1.解压redis
- tar -zxvf redis-7.2.6.tar.gz
- # 2.切换到加压后redis目录
- cd redis-7.2.6
- # 3.执行安装
- make install
复制代码 (2)将redis目录移动到之前旧redis目录
注意:新redis目录名和旧redis目录名保持一致,这里涉及到redis的启动和环境变量,保持一致可以办理这些问题。我们前面已经修改过旧redis目录不会出现覆盖的问题。
- mv redis-7.2.6 /usr/local/redis7
复制代码 (3)复制redis配置文件
- # 切换目录
- cd /usr/local/redis7/src
- # 将新的redis配置文件备份
- mv redis.conf redis.conf_20241024.bak
- # 复制旧配置文件到新redis目录的src下
- cp -ar /usr/local/redis7_20241024.bak/redis.conf ./
复制代码 (4)复制备份数据
- cp /usr/local/redis7_20241024.bak/src/dump.rdb /usr/local/redis7/src
复制代码 (5)停止旧的redis
- # 查看redis进程
- ps -ef|grep redis
- # 杀死进程
- kill -9 redis进程号
复制代码 (6)启动新的redis
分析:如果自行配置过redis的启动文件,如通过systemctl start redis启动的命令,需要注意修改redis启动的体系配置文件。这里都是手动启动redis的,没有注册到体系服务中。
- # 切换到新redis目录
- cd /usr/local/redis7/src
- # 启动redis并指定配置文件
- ./redis-server /usr/local/redis7/redis.conf
复制代码 五、验证
1.检察新安装的redis版本
2.检察数据是否恢复
从图可知数据和旧数据一致,分析数据恢复了,或者通过redis可视化工具毗连检察数据。
到此redis升级完成。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |