Redis 是一个内存型数据库,它长期存在于磁盘上。从版本 2.2 开始,在版本 5.0.13、6.0.15 和 6.2.5 之前存在一个涉及越界读取和整数溢出的漏洞。在 32 位操作系统上,Redis *BIT*
命令容易受到整数溢出的影响,可能被利用来破坏堆、泄漏任意堆内容或触发远程代码执行。
该漏洞涉及将默认的 proto-max-bulk-len
配置参数更改为一个非常大的值并构建特制的命令位命令。不过,此问题仅影响 32 位平台上的 Redis。
Redis 5.0.3m、6.0.15 和 6.2.5 包含针对此问题的补丁。在不修补 redis-server 的情况下缓解此问题的一个解决方法是防止用户修改 proto-max-bulk-len 配置参数。
影响版本
-
Redis >2.2 且 < 5.0.13
-
Redis >2.2 且 < 6.0.15
-
Redis >2.2 且 < 6.2.5
安全版本
-
Redis 5.0.13
-
Redis 6.0.15
-
Redis 6.2.5
编者建议:
- 尽量将Redis更新到最新版本。
- 可以使用64位Redis。
- 如果暂时不能更新,需要防止用户修改 proto-max-bulk-len 配置参数。
- 禁止未授权用户调用BIT命令以及CONFIG SET指令