Critical Unity Runtime Flaw Exposes Millions of Android Apps to Code Execution Attacks
Share this article
A fundamental flaw in Unity's Android runtime puts thousands of games and applications at risk of complete device takeover. Discovered by RyotaK (@ryotkak) of GMO Flatt Security during the Meta Bug Bounty Researcher Conference 2025, CVE-2025-59489 exploits Unity's debugging infrastructure to enable arbitrary code execution—with potentially catastrophic consequences for an ecosystem powering 70% of top mobile games.
The Intent Handler Backdoor
Unity's Android runtime automatically exposes UnityPlayerActivity to handle debugging commands via Android intents. As documented, developers can pass arguments using the unity extra:
adb shell am start -n "com.Company.MyGame/com.unity3d.player.UnityPlayerActivity" -e unity "-systemallocator"
The vulnerability stems from Unity's parsing of the -xrsdk-pre-init-library command-line argument, which loads specified shared libraries via dlopen() without proper validation. Attackers exploiting this can hijack the Unity process by forcing it to load malicious libraries.
Attack Vectors: From Local Dominance to Remote Risk
Local Compromise
Any malicious app on a device can:
1. Extract native libraries (when android:extractNativeLibs=true)
2. Launch the Unity app with -xrsdk-pre-init-library pointing to the malicious library
3. Execute code with the victim app's permissions
Browser-Based Threats
Remote exploitation becomes possible if:
- The app exports UnityPlayerActivity/UnityPlayerGameActivity with android.intent.category.BROWSABLE
- The app caches attacker-controlled files in private storage
Attackers could then use intent URLs:
intent:#Intent;package=com.example.unitygame;...;S.unity=-xrsdk-pre-init-library%20/path/to/malicious.so;end;
While SELinux blocks /sdcard/ access, attackers can bypass this by planting payloads in the app's private storage—a technique previously demonstrated in Messenger exploits.
"Vulnerabilities exist in the frameworks we depend on. This highlights why we must critically evaluate every feature's security implications," notes RyotaK in the disclosure.
Mitigation and Urgent Actions
Unity has patched all affected versions starting with 2019.1 and released a binary patch tool. Developers must:
1. Download updated Unity versions
2. Recompile affected projects
3. Republish applications immediately
This vulnerability underscores the fragility of gaming infrastructure—where a single engine flaw can cascade through thousands of applications. As Unity continues to dominate mobile gaming, such discoveries remind us that securing foundational frameworks isn't optional; it's the bedrock of trust in digital ecosystems.
Source: GMO Flatt Security Research (RyotaK, Security Engineer)