点击蓝字关注
CVE-2022-0543
Redis Lua 沙盒逃逸 RCE
Redis是一种非常广泛使用的缓存服务,但它也被用作消息代理。客户端通过套接字与 Redis 服务器通信,发送命令,服务器更改其状态(即其内存结构)以响应此类命令。Redis 嵌入了 Lua 编程语言作为其脚本引擎,可通过eval命令使用。Lua 引擎应该是沙盒化的,即客户端可以与 Lua 中的 Redis API 交互,但不能在运行 Redis 的机器上执行任意代码。Debian以及Ubuntu发行版的源在打包Redis时,不慎在Lua沙箱中遗留了一个对象package,攻击者可以利用这个对象提供的方法加载动态链接库liblua里的函数,进而逃逸沙箱执行任意命令。该漏洞仅限于 Debian 和 Debian 派生的 Linux 发行版。上游 Redis 不受影响。所以它属于 Debian 漏洞,而不是 Redis 漏洞。
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Base Score: 10.0 CRITICAL
Debian Redis:
Debian Redis < 5:5.0.14-1+deb10u2
Debian Redis < 5:6.0.16-1+deb11u2
Debian Redis < 5:6.0.16-2
Ubuntu Redis:
Ubuntu Redis < 5:6.0.15-1ubuntu0.1
Ubuntu Redis < 5:5.0.7-2ubuntu0.1
发现版本
redis/5:5.0.14-1+deb10u1,
redis/5:5.0.3-4, redis/5:6.0.15-1
已在
redis/5:6.0.16-1+deb11u2、
redis/5:5.0.14-1+deb10u2、
redis/5:6.0.16-2、
redis/5:7.0~rc2-2 版本中修复
漏洞环境vulhub:
https://github.com/vulhub/vulhub/tree/7fb138803337092cf1b62ce5c6a3ff3d192d09f6/redis/CVE-2022-0543
启动一个使用Ubuntu源安装的Redis 5.0.7服务器:
docker-compose up -d
使用redis-cli连接Redis服务器,eval执行payload。
不同环境下的liblua库路径不同,该实验环境使用的liblua路径为
/usr/lib/x86_64-linux-gnu/liblua5.1.so.0
在实际测试过程中需要获取正确的liblua路径。
根据该漏洞编写检测工具:
单个目标检测:
批量目标检测:
相关POC及检测工具后台回复CVE-2022-0543获取
更新至安全版本
参考链接:
https://www.ubercomp.com/posts/2022-01-20_redis_on_debian_rce
https://nvd.nist.gov/vuln/detail/CVE-2022-0543
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1005787
https://github.com/vulhub/vulhub/blob/7fb138803337092cf1b62ce5c6a3ff3d192d09f6/redis/CVE-2022-0543
我知道你 在看 哦
原文始发于微信公众号(401SecNote):CVE-2022-0543 Redis Lua 沙盒逃逸 RCE | 附检测工具
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论