以下是针对 Redis 6.x CVE-2025-32023 的离线升级方案,分外网编译打包和内网升级两部分
一、外网环境:编译并打包 Redis 6.2.19
1. 下载源码包
# 下载修复漏洞的 Redis 6.2.19 版本
wget https://download.redis.io/redis-stable.tar.gz
mv redis-stable.tar.gz redis-6.2.19.tar.gz
tar -zxvf redis-6.2.19.tar.gz
cd redis-6.2.19
2. 安装编译依赖
# 安装 GCC、make 等必要工具
sudo yum install -y gcc make
3. 编译 Redis
# 编译并指定安装目录(如 /opt/redis-6.2.19)
make && make install PREFIX=/opt/redis-6.2.19
4. 打包编译结果
# 打包安装目录和配置文件
cd /opt
tar -czvf redis-6.2.19-offline.tar.gz redis-6.2.19
二、内网环境:离线升级 Redis
1. 传输并解压包
# 将 redis-6.2.19-offline.tar.gz 上传至内网服务器
scp redis-6.2.19-offline.tar.gz user@内网IP:/opt/
ssh user@内网IP
# 解压到目标目录
cd /opt
tar -zxvf redis-6.2.19-offline.tar.gz
2. 停止 Redis 服务
# 查找 Redis 进程并停止
ps aux | grep redis
sudo systemctl stop redis # 或使用 kill 命令终止进程
3. 备份旧版本文件
# 备份原有 Redis 可执行文件和配置
cp -r /usr/local/bin/redis* /opt/redis_backup/
cp /etc/redis.conf /opt/redis_backup/
4. 替换为新版本文件
```bash
# 替换可执行文件
cp /opt/redis-6.2.19/bin/redis* /usr/local/bin/
# 替换配置文件(按需更新)
cp /opt/redis-6.2.19/redis.conf /etc/
5. 重启 Redis 服务
# 使用原有方式启动(如 systemd 或直接运行)
sudo systemctl start redis
# 或手动启动:
/usr/local/bin/redis-server /etc/redis.conf
三、验证升级
1. 检查版本
redis-cli -v
# 输出应为 Redis CLI 6.2.19
2. 验证漏洞修复
# 使用 redis-cli 连接后执行测试命令
redis-cli
127.0.0.1:6379> PFADD key "value"
# 观察是否正常响应,无异常则修复成功
四、关键注意事项
-
依赖兼容性
- 内网服务器的 GCC、glibc 等基础库需与外网编译环境一致,否则需重新编译。
- 若 Redis 依赖其他库(如 Jemalloc),需在外网编译时静态链接或单独升级。
-
配置文件兼容性
-
旧版本的
redis.conf
需与新版本兼容,重点检查以下参数:
dir # 数据存储目录 requirepass # 密码配置 bind # 绑定 IP
-
-
服务启停控制
-
若使用
systemd
管理 Redis,需更新服务文件中的路径:
[Service] ExecStart=/usr/local/bin/redis-server /etc/redis.conf
-
-
回滚方案
-
如升级失败,恢复备份文件:
cp /opt/redis_backup/redis* /usr/local/bin/ cp /opt/redis_backup/redis.conf /etc/ sudo systemctl restart redis
-
五、参考搜索结果的关键点
- 漏洞修复版本:需升级至 Redis 6.2.19 1。
- 离线编译逻辑:参考 CentOS 7 离线升级 GCC 和 OpenSSH 的步骤 5。
- 文件替换规范:确保内核和依赖库版本匹配,避免运行时错误 3。
通过以上步骤,可安全完成内网 Redis 的离线升级,修复 CVE-2025-32023 漏洞;在线升级则编译安装到/opt后停服替换历史文件即可。
评论区