Description
Luanti (formerly Minetest) is an open source voxel game-creation platform. Starting in version 5.0.0 and prior to version 5.15.2, a malicious mod can trivially escape the sandboxed Lua environment to execute arbitrary code and gain full filesystem access on the user's device. This applies to the server-side mod, async and mapgen as well as the client-side (CSM) environments. This vulnerability is only exploitable when using LuaJIT. Version 5.15.2 contains a patch. On release versions, one can also patch this issue without recompiling by editing `builtin/init.lua` and adding the line `getfenv = nil` at the end. Note that this will break mods relying on this function (which is not inherently unsafe).
Problem types
CWE-94: Improper Control of Generation of Code ('Code Injection')
Product status
References
github.com/...luanti/security/advisories/GHSA-g596-mf82-w8c3
github.com/...ommit/8a929dfb97aa08337f49ba1bb96a56d6557dc896