Unity, el popular motor de videojuegos y aplicaciones, identificó una vulnerabilidad que afecta a todas las aplicaciones creadas con versiones 2017.1 o posteriores en Android, Windows, macOS y Linux.

Esta vulnerabilidad, catalogada como CVE-2025-59489, podría permitir que un atacante inyecte código malicioso y acceda a información del sistema donde se ejecuta la aplicación.

Hasta ahora, no hay evidencia de que haya sido explotada ni que haya afectado a usuarios. Sin embargo, se recomienda a todos los desarrolladores actualizar o parchear sus aplicaciones para prevenir riesgos futuros.

Cómo Funciona

El fallo se produce a través de argumentos de línea de comando que permiten a la aplicación Unity cargar librerías externas o ejecutables no previstos. Dependiendo de la plataforma, esto puede permitir:

  • Inyección de librerías maliciosas.
  • Ejecución de código con privilegios elevados.
  • Potencial exfiltración de información de la aplicación o del sistema.

Los argumentos vulnerables incluyen: -xrsdk-pre-init-library, -dataFolder, -overrideMonoSearchPath y -monoProfiler.

Android Apps

En Android, la vulnerabilidad permite que otras aplicaciones intenten lanzar tu juego o app y carguen librerías maliciosas usando comandos específicos.

Unity lanzó la Application Patcher, que modifica los archivos libunity.so y boot.config para neutralizar los argumentos vulnerables. Los desarrolladores deben aplicar el parche o reconstruir la aplicación con una versión segura del editor.

No se esperan cambios disruptivos en las aplicaciones Android tras aplicar el parche.

Windows Apps

En Windows, la vulnerabilidad es más compleja porque las apps pueden registrarse como manejadores de URL personalizados. Esto podría permitir que un atacante con menor nivel de permisos ejecute código malicioso a través de la app.

El Unity Application Patcher reemplaza los archivos UnityPlayer.dll o .exe y bloquea los argumentos vulnerables. Los desarrolladores que usan -dataFolder deben adaptar su aplicación a la nueva estructura recomendada.

macOS Apps

En macOS, la seguridad depende de permisos individuales y del Hardened Runtime, que bloquea la ejecución de librerías no firmadas.

Si una app tiene habilitadas excepciones que permiten ejecución de código JIT, memoria ejecutable no firmada o librerías externas, la vulnerabilidad podría ser explotable.

El Application Patcher reemplaza UnityPlayer.dylib y ajusta boot.config para bloquear los argumentos peligrosos. Los desarrolladores deben re-firmar y notarizar sus apps si estaban firmadas previamente.

Linux Apps

En Linux, el riesgo es menor, porque el modelo de seguridad estándar y herramientas como AppArmor, SELinux o Firejail limitan la inyección de código.

Aun así, Unity recomienda reconstruir aplicaciones con un editor parcheado para eliminar completamente los caminos de código vulnerables.

Recomendaciones

Desarrolladores:

  • Recompilar la app con un Unity Editor parcheado.
  • Aplicar la Unity Application Patcher si no se puede reconstruir.
  • Verificar la funcionalidad post-parcheo antes de publicar.

Usuarios:

  • Mantener aplicaciones y sistemas actualizados.
  • Activar actualizaciones automáticas.
  • Evitar descargas de fuentes no confiables.

Plataformas y Steam:

  • Steam lanzó un update que bloquea lanzamientos de juegos con los argumentos vulnerables.
  • Microsoft y otros socios han aplicado medidas adicionales para proteger sus plataformas.

Recursos