CVE-2022-35978 是一个影响 Minetest 5.5.1 及之前版本的严重安全漏洞。
Minetest 是一款免费、开源的体素游戏引擎,支持简单的模组制作和游戏创建。在单人游戏模式下,模组可以设置一个全局配置,该配置控制加载用于显示主菜单的 Lua 脚本。当游戏会话退出后,这个脚本会被立即加载。主菜单运行所在的 Lua 环境没有沙箱保护,从而允许它直接干扰用户的系统。
为了缓解此问题,建议用户将 Minetest 更新到已修复该漏洞的 5.6.0 或更高版本。
此漏洞被 NVD 分配了 CVSS v3.1 基础评分 10.0(严重),表明潜在影响极大。
更多详情,请参阅 Minetest 官方更新日志和修复该问题的 GitHub 提交。

要执行这些脚本,
cve_2022_35978' 放入你的 '[MINETEST_PATH]/mods' 目录。[MINETEST_PATH]/bin/mintest.exe'。Esc 键返回主菜单。minetest.conf) 中添加以下行:enable_console = true
之后,当你启动游戏时,也会启动命令终端以输出打印信息。
此 PoC 已在 Windows 10 (Build 19045) 上的 Minetest 5.0.0 版本上测试并验证有效。
在 Minetest 5.6.0 版本上测试 PoC 确认该漏洞已被修复:
2025-02-28 23:24:11: ERROR[Main]: ModError: Failed to load and run script from C:\Users\Can\Desktop\minetest-5.6.0-win64\bin\..\mods\cve_2022_35978\init.lua:
2025-02-28 23:24:11: ERROR[Main]: Attempted to set disallowed setting.
2025-02-28 23:24:11: ERROR[Main]: stack traceback:
2025-02-28 23:24:11: ERROR[Main]: [C]: in function 'set'
2025-02-28 23:24:11: ERROR[Main]: ...minetest-5.6.0-win64\bin\..\mods\cve_2022_35978\init.lua:29: in main chunk
2025-02-28 23:24:11: ERROR[Main]: Check debug.txt for details.
2025-02-28 23:24:11: ACTION[Main]: Server: Shutting down
我开发这个概念验证 (PoC) 纯粹是为了教育目的,并促进我和同行们学习应用程序安全。此外,由于我对应用程序安全和视频游戏编程都充满热情,我非常有意探索这个 CVE。
此概念验证 (PoC) 严格用于教育目的,以推动应用程序安全领域的学习。我不支持或宽恕任何恶意使用此代码的行为。未经授权利用漏洞可能是非法和不道德的。请负责任地使用此 PoC,并且只在你有明确许可的环境中使用。