# CVE-2025-59489: Unity Runtime 인자 주입 및 신뢰할 수 없는 검색 경로 취약점 분석 및 운영 리스크 보고서 본 글은 AI에 의해 데이터 수집되어 정리되었음을 서두에 언급합니다. ## 제1장. 서론 및 경영진 요약 (Executive Summary) ### 1.1. 취약점 식별 및 중요성 본 보고서는 CVE-2025-59489로 식별된 **고위험 보안 취약점**에 대한 분석을 제공합니다. 이 취약점은 게임 개발 엔진인 Unity의 핵심 실행 환경인 Unity Runtime에 내재되어 있으며, 안드로이드, Windows, macOS, 리눅스 등 광범위한 플랫폼에서 임의 코드 실행(Arbitrary Code Execution, ACE)을 유발할 수 있습니다. 이 취약점은 2025년 6월 4일에 발견되었으며 , Unity Technologies는 2025년 10월 2일에 공식 패치를 발표했습니다 . **핵심 문제: 빌드된 애플리케이션의 재배포 필요성** 이 취약점의 가장 위험하고 복잡한 특징은 문제가 **Unity Editor 개발 도구 자체**에 있는 것이 아니라, 이 Editor로 최종 빌드되어 사용자에게 배포된 **모든 애플리케이션(게임, 시뮬레이션 등)** 의 런타임 코드에 있다는 점입니다. 따라서 단순히 개발용 Unity Editor의 버전을 최신으로 업데이트하는 것만으로는 이미 배포된 제품의 보안을 해결할 수 없습니다. **영향을 받는 모든 애플리케이션을 반드시 패치된 Editor 버전으로 다시 빌드(Rebuild)하여 최종 사용자에게 재배포(Redeploy)해야 하는 필수적인 운영적 조치**가 요구됩니다. ### 1.2. 핵심 위험 요약 및 파급 효과 CVE-2025-59489는 두 가지 주요 보안 약점, 즉 **CWE-88 (인자 주입)** 과 **CWE-426 (신뢰할 수 없는 검색 경로)** 의 결합으로 발생합니다. 이 결함은 공격자가 애플리케이션 실행 권한 내에서 악성 코드를 실행할 수 있게 합니다. - **위험도 평가:** Unity 벤더와 Tenable은 이 취약점을 CVSS v3.1 기준 **8.4점(High Severity)** 으로 평가했습니다. - **공격 조건:** 공격 성공을 위해서는 로컬 접근(피해자의 PC에 악성 파일을 배치할 수 있는 접근)이 필요하지만, 공격 복잡성이 매우 낮고(AC:L), 피해자의 클릭이나 상호 작용이 전혀 필요하지 않습니다(UI:N). - **최종 영향:** 공격에 성공할 경우 시스템의 기밀성, 무결성, 가용성 모두에서 '높음(High)' 평가를 받습니다 (C:H/I:H/A:H). 이는 공격자가 사용자의 중요한 정보를 훔치거나, 데이터를 변조하고, 시스템 기능을 마비시킬 수 있음을 의미합니다. #### Table 1. CVE-2025-59489 취약점 핵심 요약 |**항목**|**상세 내용**|**출처**| |---|---|---| |CVE ID|CVE-2025-59489|3| |벤더|Unity3D|2| |취약점 유형 (CWE)|CWE-88 (인자 주입), CWE-426 (신뢰할 수 없는 검색 경로)|| |최대 CVSS v3.1 점수|8.4 (High)|| |CVSS 벡터|AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H|| |최종 공격 영향|임의 코드 실행(ACE), 기밀성/무결성/가용성 High|| |주요 완화 요구 사항|영향받는 모든 애플리케이션의 **재빌드 및 재배포**|| ## 제2장. 취약점의 기술적 근본 원인 및 공격 메커니즘 분석 (Technical Root Cause and Attack Mechanism Analysis) ### 2.1. 취약점의 작동 원리: 신뢰할 수 없는 로딩 경로 이 취약점은 Unity Runtime이 외부 실행 명령을 처리하는 방식의 근본적인 결함에서 비롯됩니다. 1. **인자 주입 (CWE-88):** 런타임이 외부 데이터(인자)를 처리할 때, 이 데이터가 명령의 일부인지 단순한 데이터인지 구분하는 경계를 명확하게 설정하지 못합니다. 공격자는 이 허점을 이용해 데이터인 척 위장한 악성 명령을 삽입하여 런타임의 실행 흐름을 의도적으로 바꿀 수 있습니다. 2. **신뢰할 수 없는 검색 경로 (CWE-426):** 명령 흐름이 바뀌면, 애플리케이션은 실행에 필요한 동적 라이브러리(예: Windows의 DLL 파일)를 검색할 때, 보안되지 않은 임시 폴더나 현재 실행 폴더 같은 **'신뢰할 수 없는 경로'** 를 먼저 확인하도록 유도됩니다. 이 두 가지 결함의 결합은 최종적으로 애플리케이션이 **공격자가 의도한 위치에 심어 놓은 악성 라이브러리 코드**를 합법적인 시스템 파일보다 우선하여 로드하게 만듭니다. 이를 통해 공격자는 최종 사용자 시스템에서 해당 애플리케이션이 가진 권한(대부분 일반 사용자 권한)으로 임의 코드를 실행할 수 있게 됩니다. ### 2.2. 다중 플랫폼 환경에서의 공격 흐름 상세 분석 이 취약점은 로컬 접근(AV:L)을 필요로 합니다. 즉, 공격자가 악성 파일을 피해자의 컴퓨터에 미리 배치해야 합니다. 하지만 한 번 배치되면, 피해자가 단순히 취약한 Unity 애플리케이션을 실행하는 것만으로 공격이 완료됩니다. #### Windows 플랫폼: DLL 하이재킹 방식 Windows 환경에서 이 취약점은 **DLL 하이재킹(DLL Hijacking)** 공격과 매우 유사합니다. - **공격 시나리오:** Unity 기반 애플리케이션이 시작될 때, 런타임은 특정 이름의 동적 라이브러리(.dll 파일)를 찾습니다. - **악용:** 공격자는 취약한 경로(예: 게임 실행 파일과 동일한 폴더 또는 특정 임시 디렉터리)에 악성 DLL 파일을, 런타임이 찾는 시스템 DLL과 **동일한 이름**으로 배치합니다. - **결과:** Unity 런타임은 신뢰할 수 없는 경로를 먼저 검색하여 악성 DLL을 합법적인 시스템 파일보다 먼저 로드하고, 그 결과 악성 코드가 실행됩니다. #### Android 및 기타 환경의 제한 - **Android:** 안드로이드의 보안 정책(SELinux)은 일반적으로 사용자의 다운로드 디렉터리 등 개방된 경로에서 동적 코드 로딩을 제한하는 데 도움이 됩니다. 이는 원격 공격자가 파일을 다운로드 폴더에 넣는 시나리오의 위험을 부분적으로 낮출 수 있지만, 이미 기기에 설치된 다른 악성 앱(로컬 공격자)이 이 취약점을 악용하는 것은 막을 수 없습니다. - **macOS/Linux:** 이들 환경에서도 동적 라이브러리 로딩 경로(`.so`, `.dylib` 파일)를 조작하거나 환경 변수를 이용하는 방식으로 악용될 수 있습니다. ## 제3장. 위험도 정량 분석: CVSS 점수 불일치 심층 고찰 (Quantitative Risk Analysis: CVSS Discrepancy) ### 3.1. CVSS v3.1 평가 비교: 7.4 vs. 8.4의 의미 CVE-2025-59489에 대한 CVSS 점수는 평가 기관에 따라 두 가지로 나뉩니다. 이 차이는 **공격 복잡성(AC)** 메트릭의 해석에서 발생합니다. |**메트릭**|**NVD/MITRE Score (7.4)**|**Unity Vendor/Tenable Score (8.4)**|**차이점**| |---|---|---|---| |Attack Complexity (AC)|High (H)|Low (L)|**공격 난이도 해석 차이**| |최종 점수|7.4 (High)|8.4 (High)|N/A| ### 3.2. 핵심 불일치 분석: 공격 복잡성 (AC:H vs. AC:L) - **AC:H (High, 높음 - 7.4점):** NVD/MITRE가 이 점수를 부여한 것은, 공격을 성공시키기 위해 공격자가 매우 정교한 타이밍이나 특정 환경 설정 등 **고도의 기술적 난이도**를 충족해야 한다고 보았기 때문일 수 있습니다. - **AC:L (Low, 낮음 - 8.4점):** Unity 벤더가 이 점수를 부여한 것은, 취약점을 악용하는 데 필요한 조건이 복잡하지 않으며, 악성 파일을 로컬에 배치하는 것 외에 특별한 기술적 어려움이 없음을 시사합니다. 벤더는 해당 런타임 코드를 가장 잘 이해하고 있으므로, **조직은 가장 보수적이고 안전한 접근 방식에 따라 Unity가 제시한 8.4점(공격 복잡성 낮음)을 기준으로 위험도를 평가하고 즉각적으로 대응해야 합니다.** ## 제4장. 영향받는 제품군 및 버전 노출 범위 (Affected Products and Version Exposure) ### 4.1. 광범위한 취약 Editor 버전 범위 이 취약점은 Unity Editor 버전 **2019.1부터 최신 6000.3 버전까지** 광범위하게 영향을 미칩니다. 이는 Unity의 장기 지원(LTS) 버전뿐만 아니라 기술 스트림 버전까지 모두 포함하며, 수많은 기존 제품들이 잠재적인 위험에 노출되어 있음을 의미합니다. Unity는 지원이 종료된(Out-of-support) 레거시 버전(예: 2019.x, 2020.x, 2021.x 브랜치)에 대해서도 긴급 패치 버전을 제공했습니다. 이는 해당 취약점의 심각성이 매우 높으며, 여전히 많은 기업이 이들 구버전으로 빌드된 제품을 운영하고 있음을 반증합니다. ### 4.2. 영향받는 주요 Unity Editor 버전 및 패치 버전 상세 목록 개발팀이 애플리케이션을 재빌드하기 위해 사용해야 할 최소 패치 버전은 다음과 같습니다. 현재 사용 중인 Editor 버전이 이 목록의 **"최소 패치 버전" 이상**인지 확인해야 합니다. #### Table 3. CVE-2025-59489 영향받는 주요 Unity Editor 버전 및 패치 버전 (상세) |**LTS/Tech Stream 브랜치**|**영향받는 버전 범위 (패치 이전)**|**최소 패치 버전 (재빌드 필수)**|**출처**| |---|---|---|---| |6000.3 (Tech)|6000.3 이전의 모든 버전|6000.3.0b4|| |6000.2 (Tech)|6000.2 이전의 모든 버전|6000.2.6f2|| |2023.2|2023.2 이전의 모든 버전|2023.2.22f1|| |2022.3 xLTS|2022.3 xLTS 이전의 모든 버전|2022.3.67f2|| |2021.3 xLTS|2021.3 xLTS 이전의 모든 버전|2021.3.56f2|| |2020.3 LTS|2020.3 이전의 모든 버전|2020.3.49f1|| |2019.4 LTS|2019.4 LTS 이전의 모든 버전|2019.4.42f1 (해당 LTS의 마지막 패치 버전)|| ## 제5장. 완화 전략 및 재배포 로드맵 (Mitigation Strategy and Redeployment Roadmap) ### 5.1. 필수 조치: 재빌드 및 재배포 로드맵 이 취약점을 해결하기 위한 유일하고 완전한 해결책은 **영향을 받는 모든 애플리케이션을 재빌드하고 재배포**하는 것입니다. 단계 1: Unity Editor 업데이트 현재 사용 중인 개발 환경(Unity Editor)을 Table 3에 명시된 해당 브랜치의 최소 패치 버전 이상으로 업데이트합니다. 단계 2: 모든 프로젝트 바이너리 재빌드 (Rebuild) 업데이트된 Editor를 사용하여 이전에 빌드했던 모든 최종 애플리케이션 바이너리(예: .exe, .apk, .app 파일)를 다시 만듭니다. 이 과정에서 취약한 런타임 코드가 패치된 코드로 대체됩니다. 단계 3: 재배포 및 사용자 업데이트 유도 새로 빌드된 애플리케이션을 모든 배포 채널(앱 스토어, Steam, 엔터프라이즈 포털 등)을 통해 최종 사용자에게 배포합니다. 보안팀은 사용자 업데이트율을 추적하여 패치 적용 범위를 확인해야 합니다. ### 5.2. 개발자를 위한 임시 및 비상 완화 방안 바이너리 패치 도구 활용 (Windows 전용): 소스 코드 접근이 불가능하거나 레거시 프로젝트라서 즉각적인 재빌드가 불가능한 Windows 기반 .exe 파일의 경우, Unity는 해당 바이너리를 직접 수정하여 취약점을 해결하는 바이너리 패치 도구를 제공했습니다. 이는 긴급한 상황에 한해 사용할 수 있는 임시 조치이며, 장기적으로는 반드시 전체 재빌드를 수행해야 합니다. OS 및 플랫폼 차원의 추가 방어: 취약점이 런타임에 내재되어 있더라도, 엔드포인트 보안 솔루션을 통해 공격을 탐지할 수 있습니다. 예를 들어, Windows 환경에서는 Microsoft Defender가 이미 업데이트되어 이 취약점 악용 시도를 탐지하고 차단하는 기능을 제공합니다. 또한, Valve는 Steam 클라이언트를 통해 배포되는 애플리케이션에 추가적인 보호 조치를 적용하고 있습니다. ## 제6장. 결론 및 향후 위협 전망 (Conclusion and Future Threat Outlook) ### 6.1. 최종 권고사항 요약 CVE-2025-59489는 Unity 기반 애플리케이션을 운영하는 모든 조직에게 **가장 높은 우선순위로 대응해야 할 고위험 취약점**입니다. 공격 복잡성이 낮고(AC:L) 사용자 상호작용이 필요 없다는 점은 공격 성공률이 높다는 것을 의미합니다. - **즉각적인 실행:** 지원되는 모든 Unity 제품군에 대해 Editor 업데이트 후 **재빌드 및 재배포** 작업을 최우선 과제로 시작하십시오. - **레거시 제품 검토:** 지원이 불가능한 구형 제품에 대해서는 Windows용 바이너리 패치 도구를 임시로 적용하는 방안을 고려하고, 장기적으로는 해당 제품의 서비스 종료(EOL)를 계획해야 합니다. - **위협 인텔리전스 모니터링:** 이 취약점은 로컬 권한 상승(LPE) 공격 체인에 통합될 가능성이 높습니다. 따라서 보안팀은 실제 악용 사례나 PoC 코드의 공개 여부를 지속적으로 모니터링해야 합니다. ### 6.2. 향후 위협 전망 Unity Runtime과 같이 광범위하게 사용되는 핵심 엔진의 취약점은 잠재적인 피해 규모가 매우 크다는 것을 의미합니다. 이 취약점이 공개됨에 따라, 공격자들은 곧 이를 활용하여 로컬 공격 체인을 완성하거나, 기존 악성코드에 통합하려 시도할 것입니다. 기업 보안팀은 애플리케이션의 실행 시점에서 비정상적인 동적 라이브러리 로딩 시도나 인자 주입 패턴을 탐지할 수 있도록 엔드포인트 탐지 및 대응(EDR) 시스템의 모니터링 강도를 높여야 합니다.