Redis5.0.5 漏洞

发布于:2025-07-16 ⋅ 阅读:(20) ⋅ 点赞:(0)

漏洞介绍

Redis 5.0.5 版本的 ‌CVE-2025-32023‌ 漏洞涉及 hyperloglog组件的越界写入问题,可导致远程代码执行(RCE)

漏洞危害

攻击方式:通过恶意构造的 hyperloglog 命令触发内存越界,攻击者可执行任意代码获取服务器控制权‌
影响范围‌:Redis 2.8.X ~ 6.2.18、7.2.X ~ 7.2.9、7.4.X ~ 7.4.4 及 8.0.X ~8.0.2均受影响‌

临时缓解措施

1 禁用高危命令
修改配置文件 redis.conf 重启Redis生效。

rename-command PFADD ""   # 禁用hyperloglog相关命令
rename-command PFCOUNT ""
rename-command PFMERGE ""

2 网络隔离
限制 Redis 仅监听内网 IP:bind 192.168.1.XXX (Ps:此处修改完成后还需要修改application.yml)
配置防火墙规则:

firewall-cmd --permanent --remove-port=6379/tcp  # 关闭默认端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="可信IP段" port port="自定义端口" accept' 
firewall-cmd --reload

补丁修复步骤

1 获取官方补丁文件

#进入 Redis 源码目录
cd /path/to/redis-5.0.5
#下载补丁(Commit ID: 50188747cbfe)
wget https://github.com/redis/redis/commit/50188747cbfe43528d2719399a2a3c9599169445.patch

2 应用补丁并重新编译

#应用补丁
patch -p1 < 50188747cbfe43528d2719399a2a3c9599169445.patch
#清理旧编译文件
make clean
#重新编译(需安装 gcc、make、tcl-dev)
make
#安装到系统目录
sudo make install

3 重启 Redis 服务

sudo systemctl restart redis

4 加固措施(必选)
即使打补丁后仍需配置以下策略:
4.1 禁用 HyperLogLog 高危命令
修改redis.conf:

rename-command PFADD ""   # 禁用 PFADD
rename-command PFCOUNT "" # 禁用 PFCOUNT
rename-command PFMERGE "" # 禁用 PFMERGE

4.2‌ 启用 ACL 访问控制

acluser default on >YourStrongPassword ~* +@read -@all
acluser hyperloglog_block on >Password2 ~* -PFADD -PFCOUNT -PFMERGE

4.3‌ 网络隔离

bind 127.0.0.1      # 仅监听本地
protected-mode yes   # 启用保护模式
requirepass <密码>   # 强制认证

升级到修复版本

‌在线升级(推荐)
下载并编译安全版本(以6.2.19为例)

wget https://github.com/redis/redis/archive/refs/tags/6.2.19.tar.gz
tar -xvf 6.2.19.tar.gz
cd redis-6.2.19
make BUILD_TLS=yes MALLOC=libc && sudo make install

‌离线升级指南‌
适用于无外网服务器(如银行内网):
外网机器编译‌:

#安装编译依赖
sudo yum install -y gcc openssl-devel tcl
wget https://github.com/redis/redis/archive/6.2.19.tar.gz
tar -xvf 6.2.19.tar.gz
cd redis-6.2.19
make BUILD_TLS=yes STATIC=yes MALLOC=libc  # 静态编译避免依赖问题

‌打包迁移‌:
将编译生成的 src/redis-server、src/redis-cli 及配置文件拷贝至内网‌。
‌内网替换‌:

sudo systemctl stop redis
cp redis-server /usr/local/bin/   # 替换旧版二进制文件
sudo systemctl start redis

验证与监控

版本检查:

redis-server -v  # 应输出 6.2.19 或更高

入侵痕迹排查‌:

#检查可疑文件
ls -al /root/.ssh/authorized_keys  # 查看是否被写入攻击者公钥
grep -r "eval " /var/lib/redis/    # 搜索恶意Lua脚本

网站公告

今日签到

点亮在社区的每一天
去签到