人気のゲームおよびアプリケーションエディタであるUnityにおいて、高深刻度の脆弱性が発見され、攻撃者が任意のライブラリを読み込んでコード実行を行う可能性があります。
CVE-2025-59489(CVSSスコア8.4)として追跡されているこのセキュリティ欠陥は、Unityがコマンドライン引数を通じて任意のコードを読み込み、実行できてしまう点に存在します。
GMOサイバーセキュリティ byイエラエのセキュリティエンジニアRyotaK氏によると、この問題はUnityのアプリケーションデバッグ機能のサポートに関連しており、ローカルでの悪用は非常に簡単だといいます。
「Androidデバイス上でUnityアプリケーションのデバッグをサポートするために、Unityはunity extraを含むインテントのハンドラをUnityPlayerActivityに自動的に追加します。このアクティビティはアプリケーションのデフォルトのエントリーポイントとして機能し、他のアプリケーションにエクスポートされます」とRyotaK氏は述べています。
このextraはUnityへのコマンドライン引数として渡され、どのアプリケーションからでもUnityアプリにextraを送信できるため、攻撃者はUnityアプリに渡されるコマンドライン引数を制御できてしまいます。
攻撃者は、悪意のあるコードを含むネイティブライブラリを抽出する悪質なアプリケーションを作成し、特定の引数でそのライブラリを指定してUnityアプリケーションを起動することで、コード実行を達成できます。
セキュリティエンジニアによれば、悪意のあるウェブサイトが特定のライブラリをブラウザにダウンロードさせ、指定した引数でそれを読み込ませることができれば、リモートからの悪用も理論上可能です。
UnityはUnity Editorバージョン6000.3.0b4、6000.2.6f2、6000.0.58f2、2022.3.67f2、2021.3.56f2のリリースでこの脆弱性に対処しました。また、サポート終了バージョンについても2019.1まで修正を適用しています。
Unityによると、この問題が悪用された場合、攻撃者がUnityで構築されたアプリケーションを実行しているデバイス上で任意のコードをリモートで実行し、情報にアクセスできる可能性があります。
「コード実行は脆弱なアプリケーションの権限レベルに限定され、情報漏洩も脆弱なアプリケーションがアクセス可能な情報に限定されます。この脆弱性の悪用や、ユーザーや顧客への影響は確認されていません」とUnityは述べています。
しかし同時に、「脆弱なアプリケーションまたはハンドラ名に対して登録されたカスタムURIハンドラが存在するため、Windowsデバイスでの悪用リスクが高い」とも警告しています。
「ターゲットシステムにカスタムURIスキームが存在し、それが呼び出せる場合、攻撃者がそのURIを開かせることで、コマンドラインアクセスなしに脆弱なライブラリ読み込み動作を引き起こすことができます。悪用の可能性は、対象アプリケーションの権限およびそのプロセスがアクセスできるデータやサービスに限定されます」とベンダーは述べています。
Unityは開発者向けに推奨事項を公開しており、Android、Windows、macOS、Linux向けにUnity 2017.1以降で構築されたすべてのアプリケーションが影響を受けると警告しています。同社は、エディタを最新バージョンにアップデートし、アプリケーションを再構築・再配布するよう開発者に強く促しています。
Microsoftによると、影響を受ける可能性のあるアプリケーションやゲームの特定とアップデートに取り組んでおり、Microsoft Defenderに悪用検出ルールを追加したとしています。
「現在ご利用中のMicrosoftアプリやゲームの中に、アップデートが提供されるまでアンインストールすべきものがあるかもしれません。私たちは、このUnityの脆弱性の影響を受ける可能性のあるゲームやアプリケーションのアップデートに取り組んでいます」と同社はユーザーに伝えています。
Valveは新しいSteamクライアントアップデートをリリースし、Unityのこの脆弱性に関連する4つのコマンドラインパラメータのいずれかが起動リクエストに含まれている場合、ゲームの起動をブロックするようにしました。開発者はSteamworks SDKまたはSteamworksウェブサイトを使ってゲームをアップデートし、Steamにアップデートを提出する必要があります。
「Unityはこの問題の影響を受けるゲームをアップデートするための2つの方法を提供しています。もしゲームが現在も開発中であれば、新しいバージョンのUnity Editorを使ってゲームを再構築できます。再構築ができない開発者向けには、UnityはUnityPlayer.dllランタイムファイルの修正版をリリースしており、既存のゲームフォルダに上書きすることで対応可能です」とValveは述べています。