CVE-2025-59489:Unity运行时中的任意代码执行

CVE-2025-59489:Unity运行时中的任意代码执行

漏洞是怎么被发现的?

这次的问题不是Unity 自己发现的,而是由日本资安团队flatt.tech找出的。
他们在确认漏洞后立即私下通报Unity,双方采用「负责任揭露」方式同步公开。 漏洞的根本原因在于Unity
的Runtime(执行环境)设计缺陷。 游戏启动时,Unity 会处理外部传入的参数(本来是给开发者用的), 但系统并没有做好安全检查。
这让攻击者有机可乘,能在启动时注入恶意指令、 甚至让游戏下载并执行外部程式。

Unity 运行时的 Intent 处理流程中存在一个漏洞,该流程针对 Unity 游戏和应用程序。
此漏洞允许恶意 Intent 控制传递给 Unity 应用程序的命令行参数,从而使攻击者能够.so根据平台加载任意共享库(文件)并执行恶意代码。

在默认配置下,此漏洞允许安装在同一设备上的恶意应用程序劫持授予 Android Unity 应用程序的权限。
在特定情况下,该漏洞可被远程利用来执行任意代码,但我并未调查第三方 Unity 应用程序,以找到具备此漏洞所需功能的应用程序。

Unity 已解决此问题,并从 2019.1 开始更新所有受影响的 Unity 版本。强烈建议开发者下载更新, 重新编译游戏和应用程序,然后重新发布,以确保项目安全。

Unity 的 Intent Handler

为了支持在 Android 设备上调试 Unity 应用程序,Unity 会自动将包含 extra 的 Intent 的处理程序添加unity到 UnityPlayerActivity。此 Activity 用作应用程序的默认入口点,并可导出到其他应用程序。

https://docs.unity3d.com/6000.0/Documentation/Manual/android-custom-activity-command-line.html

adb shell am start -n "com.Company.MyGame/com.unity3d.player.UnityPlayerActivity" -e unity "-systemallocator"

如上所述,unity额外内容被解析为 Unity 的命令行参数。

虽然 Android 的权限模型通过向应用程序授予权限来管理功能访问,但它并不限制可以向应用程序发送哪些 Intent。
这意味着任何应用程序都可以unity向 Unity 应用程序发送额外信息,从而允许攻击者控制传递给该应用程序的命令行参数。

xrsdk-pre-init-library 命令行参数
将 Unity Runtime 二进制文件加载到 Ghidra 后,我发现了以下命令行参数:

initLibPath = FUN_00272540(uVar5, "xrsdk-pre-init-library");

该命令行参数的值稍后会传递给dlopen,从而导致在中指定的路径xrsdk-pre-init-library被加载为本机库。

lVar2 = dlopen(initLibPath, 2);  

这种行为允许攻击者在 Unity 应用程序的上下文中执行任意代码,通过使用 -xrsdk-pre-init-library 参数启动它们来利用其权限。

攻击场景

本地攻击
安装在同一设备上的任何恶意应用程序都可以通过以下方式利用此漏洞:

提取本机库,并在 AndroidManifest.xml 中android:extractNativeLibs设置属性true
-xrsdk-pre-init-library使用指向恶意库的参数启动 Unity 应用程序
Unity 应用程序随后会使用自己的权限加载并执行恶意代码
通过浏览器进行远程利用
在特定情况下,尽管条件允许,此漏洞仍可能被远程利用。
例如,如果应用程序导出UnityPlayerActivity或UnityPlayerGameActivity带有android.intent.category.BROWSABLE类别(允许浏览器启动),则网站可以使用 Intent URL 指定传递给活动的额外信息:

intent:#Intent;package=com.example.unitygame;scheme=custom-scheme;S.unity=-xrsdk-pre-init-library%20/data/local/tmp/malicious.so;end;

乍一看,恶意网站似乎可以通过强制浏览器下载.so文件并通过xrsdk-pre-init-library参数加载它们来利用此漏洞。

远程利用的要求

要远程利用此漏洞,必须满足以下条件:

应用程序导出UnityPlayerActivity或UnityPlayerGameActivity与android.intent.category.BROWSABLE类别
应用程序将包含攻击者控制内容的文件写入其私有存储(例如,通过缓存)
即使没有这些条件,任何 Unity 应用程序仍然可以进行本地开发。

Unity 平台保护:立即采取行动保护您的游戏和应用

修补方案

修补工具

Unity编辑器下载

https://discussions.unity.com/t/cve-2025-59489-patcher-tool/1688032
在这里插入图片描述

杂项:
https://www.4gamers.com.tw/saged/detail/qmrkdx93xelmd0
https://flatt.tech/research/posts/arbitrary-code-execution-in-unity-runtime/
发现此漏洞的人:
https://x.com/ryotkak

**项目概述:** 本资源提供了一套采用Vue.js与JavaScript技术栈构建的古籍文献文字检测与识别系统的完整源代码及相关项目文档。当前系统版本为`v4.0+`,基于`vue-cli`脚手架工具开发。 **环境配置与运行指引:** 1. **获取项目文件**后,进入项目主目录。 2. 执行依赖安装命令: ```bash npm install ``` 若网络环境导致安装缓慢,可通过指定镜像源加速: ```bash npm install --registry=https://registry.npm.taobao.org ``` 3. 启动本地开发服务器: ```bash npm run dev ``` 启动后,可在浏览器中查看运行效果。 **构建与部署:** - 生成测试环境产物: ```bash npm run build:stage ``` - 生成生产环境优化版本: ```bash npm run build:prod ``` **辅助操作命令:** - 预览构建后效果: ```bash npm run preview ``` - 结合资源分析报告预览: ```bash npm run preview -- --report ``` - 代码质量检查与自动修复: ```bash npm run lint npm run lint -- --fix ``` **适用说明:** 本系统代码经过完整功能验证,运行稳定可靠。适用于计算机科学、人工智能、电子信息工程等相关专业的高校师生、研究人员及开发人员,可用于学术研究、课程实践、毕业设计或项目原型开发。使用者可在现有基础上进行功能扩展或定制修改,以满足特定应用场景需求。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
【EI复现】基于阶梯碳交易的含P2G-CCS耦合和燃气掺氢的虚拟电厂优化调度(Matlab代码实现)内容概要:本文介绍了基于阶梯碳交易机制的虚拟电厂优化调度模型,重点研究了包含P2G-CCS(电转气-碳捕集与封存)耦合技术和燃气掺氢技术的综合能源系统在Matlab平台上的仿真与代码实现。该模型充分考虑碳排放约束与阶梯式碳交易成本,通过优化虚拟电厂内部多种能源设备的协同运行,提升能源利用效率并降低碳排放。文中详细阐述了系统架构、数学建模、目标函数构建(涵盖经济性与环保性)、约束条件处理及求解方法,并依托YALMIP工具包调用求解器进行实例验证,实现了科研级复现。此外,文档附带网盘资源链接,提供完整代码与相关资料支持进一步学习与拓展。; 适合人群:具备一定电力系统、优化理论及Matlab编程基础的研究生、科研人员或从事综合能源系统、低碳调度方向的工程技术人员;熟悉YALMIP和常用优化算法者更佳。; 使用场景及目标:①学习和复现EI级别关于虚拟电厂低碳优化调度的学术论文;②掌握P2G-CCS、燃气掺氢等新型低碳技术在电力系统中的建模与应用;③理解阶梯碳交易机制对调度决策的影响;④实践基于Matlab/YALMIP的混合整数线性规划或非线性规划问题建模与求解流程。; 阅读建议:建议结合提供的网盘资源,先通读文档理解整体思路,再逐步调试代码,重点关注模型构建与代码实现之间的映射关系;可尝试修改参数、结构或引入新的约束条件以深化理解并拓展应用场景。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值