IPBUF安全漏洞报告
English
CVE-2026-41196 CVSS 10.0 严重

CVE-2026-41196 Luanti Lua沙箱逃逸致RCE漏洞

披露日期: 2026-04-23

漏洞信息

漏洞编号
CVE-2026-41196
漏洞类型
沙箱逃逸
CVSS评分
10.0 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Luanti (formerly Minetest)

相关标签

沙箱逃逸远程代码执行LuantiMinetestLuaJITRCE

漏洞概述

Luanti(前身为Minetest)是一款开源体素游戏创建平台。在5.0.0至5.15.2之前的版本中,存在一个严重的安全漏洞。当使用LuaJIT时,恶意模组可以轻易绕过Lua沙箱环境的限制,进而执行任意代码并获得用户设备的完整文件系统访问权限。该漏洞影响服务端模组、异步操作、地图生成以及客户端(CSM)环境。攻击者无需认证且无需用户交互即可利用此漏洞,导致极高的安全风险。

技术细节

该漏洞源于Luanti在使用LuaJIT引擎时未能正确隔离Lua环境。在受影响版本中,恶意模组可以通过调用`getfenv`等函数突破沙箱限制,访问宿主操作系统的底层功能。由于Luanti允许加载第三方模组,攻击者可制作包含恶意代码的模组。一旦该模组被加载到服务器或客户端,攻击者即可在目标系统上执行任意命令,读写任意文件。漏洞存在于服务端模组、异步引擎、地图生成器以及客户端脚本环境(CSM)中。CVSS向量显示该漏洞具有网络攻击面、攻击复杂度低、无需权限和用户交互的特点,且影响范围广泛(可横向移动),因此被评为最高危级别。

攻击链分析

STEP 1
1. 侦察与准备
攻击者分析Luanti的模组机制,并编写包含恶意Lua代码的模组,该代码利用getfenv函数尝试突破沙箱。
STEP 2
2. 投递
攻击者将恶意模组上传至公共模组库,或者诱导受害者服务器管理员安装该模组,或者在受害者加入的服务器中加载恶意服务端模组。
STEP 3
3. 利用
当Luanti加载模组时,恶意Lua代码被执行。由于使用LuaJIT且存在漏洞,代码成功绕过沙箱限制。
STEP 4
4. 执行与控制
攻击者利用沙箱逃逸获得的权限,在宿主机上执行任意系统命令,读写敏感文件,完全控制设备。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
-- Conceptual PoC for CVE-2026-41196: Luanti Sandbox Escape -- This script demonstrates the usage of getfenv to potentially break out of the sandbox. -- Note: This requires a vulnerable version of Luanti (prior to 5.15.2) using LuaJIT. print("[*] Checking for sandbox escape vector...") -- In vulnerable versions, getfenv is not restricted and allows accessing the global environment if getfenv then print("[+] getfenv is available. Attempting to access global environment...") -- Retrieve the environment of a function (e.g., print or the current chunk) local env = getfenv(0) if env then print("[+] Successfully accessed environment.") -- Check if we can access restricted libraries like 'os' or 'io' -- In a strict sandbox, these should be nil, but the escape makes them available if env.os then print("[+] 'os' library is accessible! Arbitrary Code Execution possible.") -- env.os.execute("id") -- Example malicious command else print("[-] 'os' library not directly exposed in this scope.") end end else print("[-] getfenv is restricted. System may be patched.") end

影响范围

Luanti >= 5.0.0, < 5.15.2

防御指南

临时缓解措施
对于无法立即升级到修复版本的用户,可以通过修改配置文件进行临时缓解。请编辑游戏安装目录下的 `builtin/init.lua` 文件,并在文件末尾添加一行代码 `getfenv = nil`。这将禁用导致沙箱逃逸的关键函数。请注意,此操作可能会导致依赖该函数的合法模组无法正常运行。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表