Redis 8.2.1 及更低版本允许经过身份验证的用户使用特制的 Lua 脚本操纵垃圾收集器,触发 UAF 漏洞,并可能导致远程代码执行。所有包含 Lua 脚本的 Redis 版本都存在此问题。该问题已在 8.2.2 版本中修复。在不修补 redis-server 可执行文件的情况下,解决这个问题的方法是阻止用户执行 Lua 脚本。可以使用 ACL 限制 EVAL 和 EVALSHA 命令来实现。
博客已经编写适用于Centos7&银河麒麟v10的rpm包,并且已经自定义安装过程,具体代码如下:
echo "Redis 安装完成!" PORT=$(grep '^port' /etc/redis/redis.conf | awk '{print $2}') echo "Redis 端口: $PORT" requirepass=$(grep '^requirepass' /etc/redis/redis.conf | awk '{print $2}') echo "Redis 密码: $requirepass" echo "测试redis: 启动redis服务后,执行: /usr/bin/redis-cli -p $PORT -a $requirepass" echo "如需修改密码,请编辑 /etc/redis/redis.conf" echo "使用服务进行控制redis service redis stop|start|restart"
安装后,默认启动10000-20000之间的随机端口,默认自动生成强密码。
如果从7.x升级,可以直接复制redis.conf进行覆盖安装。跨多个版本升级,建议只将之前的redis.conf文件关键位置进行替换(bind、port、requirepass等信息)。
下载:
https://cikeblog.com/s/redis-8.2.2.tgz
安装:
tar -xf redis-8.2.2.tgz && rpm -ivh redis*.rpm
安装后根据提示使用即可,(占位)如果后续升级新版本,使用以下命令安装:
rpm -e `rpm -qa|grep redis` rpm -ivh redis*.rpm