Unity引擎CVE-2025-59489漏洞解析与修复指南
漏洞概述
十月初,Unity宣布游戏开发者需要紧急处理一个重大安全问题。这款用于PC、主机和移动游戏的流行引擎存在软件漏洞,要求所有已发布游戏必须更新。该漏洞可追溯至八年前的引擎版本2017.01,影响所有现代Unity游戏以及在Android、Linux、MacOS和Windows平台上的应用程序。
不仅开发者对此公告作出反应,Valve宣布将阻止Steam启动具有不安全设置的游戏,微软更进一步建议在游戏修复前暂时卸载存在漏洞的游戏。
Unity漏洞工作原理
CVE-2025-59489漏洞的利用可能导致游戏运行恶意代码,或让攻击者访问设备上的信息。攻击者可以向游戏传递启动参数,易受攻击的Unity Runtime版本会处理几个原本用于调试的命令:包括-xrsdk-pre-init-library、–dataFolder、overrideMonoSearchPath和-monoProfiler等。通过这些命令,Unity引擎会加载启动参数中指定的任何库——包括恶意库。它可以在Windows上加载.dll文件,在Android和Linux上加载.so库,在macOS上加载.dylib库。
通过这种方式,一个低权限的恶意应用程序可以启动带有修改后启动参数的游戏,并使其下载并运行恶意库。这样,恶意库将拥有与游戏本身相同的权限和访问权。
另一种可以利用此漏洞的攻击可以远程进行。如果游戏可以通过点击浏览器中的某些超链接启动(游戏必须注册为URI模式处理程序),恶意网站可以先说服用户下载恶意库文件,然后启动易受攻击的游戏并加载此库。
游戏漏洞的危险性
此漏洞的利用主要用于提升权限和绕过防御。现代操作系统中的未知应用程序通常与其他应用程序隔离,并被剥夺对敏感信息的访问权限。但它仍然可以启动已安装的应用程序。因此,当游戏通过攻击者精心设计的参数启动时,它会加载恶意库,而系统及其防御机制会认为此库是游戏的一部分。它具有与游戏相同的权利和访问权限,还可能绕过某些防病毒软件的检测。游戏有时需要相对较高的系统权限,因此这是攻击者成为设备管理员或至少成为"受尊敬用户"的一种方式。
实际攻击中的利用情况
Unity强调该缺陷是由道德黑客发现的,目前没有证据表明该漏洞正在实际攻击中被利用。但考虑到该问题的广泛公开性和利用的简易性,任何有意愿的攻击者都可能在几天内武装自己使用CVE-2025-59489。因此采取预防措施并非不合理。
如何修复漏洞
主要工作应由游戏开发者完成。更新Unity Editor后,他们应使用修补版的Unity Runtime重新编译游戏,并在网站或应用商店中发布。用户需要关注基于Unity的游戏的更新,并及时更新它们。
Valve已更新Steam客户端,并为通过客户端运行的游戏修复了此问题。现在它会阻止使用前述危险参数启动游戏。
微软已确认该漏洞不影响游戏的Xbox版本,但提供了其应用商店中可用于其他平台的易受攻击游戏的广泛列表。在指定游戏中的漏洞修复之前,微软建议卸载它们。
除了更新游戏外,请确保您的计算机和智能手机受到全面的网络威胁防护系统(如Kaspersky Premium)的保护。它不仅可以防止许多漏洞被利用,还可以防止第一阶段恶意软件的运行。
如果游戏不再更新如何修复漏洞
对于无法访问Unity编辑器或不再支持游戏的开发者,Unity提供了Unity Application Patcher应用程序。它会检测游戏使用的Unity版本,并下载更新的库(Android为libunity.so,Windows为UnityPlayer.dll,macOS为UnityPlayer.dylib),修复该缺陷。修补后的游戏仍需在网站或应用商店中重新发布。
对于游戏玩家,只有Windows版本的修补程序有用,因为在保持游戏功能的同时更改MacOS或Android的游戏组件非常困难。