漏洞详情
在Debian、Ubuntu和其他基于Debian的发行版上运行Redis部分版本会受到影响,具体可查看参考链接。
本次复现借助vulhub环境及P神的payload进行简单复现。
本次复现主要是借助Lua沙箱中遗留的变量package的loadlib函数来加载动态链接库/usr/lib/x86_64-linux-gnu/liblua5.1.so.0里的导出函数luaopen_io。在Lua中执行这个导出函数,即可获得io库,除了使用这个luaopen_io,也可以使用其他的函数,如原作者使用的luaopen_os函数,具体其他关于Lua的函数可查看https://www.runoob.com/manual/lua53doc/contents.html,但最后都是需要在Redis中使用eval进行执行命令。
在加载动态链接库时需要注意的是,不同的环境下该链接库地址可能会不同,在在本次复现的环境下,该地址为/usr/lib/x86_64-linux-gnu/liblua5.1.so.0,原作者提到的是在x86-64环境下的地址为/usr/lib/x86_64-linux-gnu/liblua5.1.so,具体是否在x86-64环境下都为该地址还有待验证。
连接redis,使用eval执行Lua脚本进行测试:
使用原作者的POC需要注意的是,POC的动态链接库地址貌似并不完整,在vulhub环境下执行的时候可能会出现报错的情况,具体请自行查看。
1.升级至安全版本:
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
2.做好Redis鉴权限制和禁止对外网访问。
https://www.ubercomp.com/posts/2022-01-20_redis_on_debian_rce
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1005787
https://avd.aliyun.com/detail?id=AVD-2022-0543
https://github.com/vulhub/vulhub
https://mp.weixin.qq.com/s/SF1RwP0h9Snq4n7nRpJY-g
声明:本文作为个人学习记录使用,请勿用于非法行为,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本公众号与文章作者不为此承担任何责任。
原文始发于微信公众号(信安搬运工):Redis Lua沙盒绕过命令执行漏洞(CVE-2022-0543)预警及复现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论