
Escáner automatizado que detecta la vulnerabilidad de inyección en tiempo de ejecución de Unity CVE-2025-59489 en APKs de Android extrayendo la versión de Unity y verificándola contra las versiones parcheadas, con procesamiento por lotes e integración con CI/CD.
Herramienta de detección automatizada de vulnerabilidades de inyección en Unity Runtime, diseñada específicamente para plataformas de juegos Android.
Resumen en una frase: Un atacante puede tomar control total del juego/aplicación Unity afectado, obteniendo todos los permisos de dicha aplicación.
Punto clave: En Android, una aplicación maliciosa puede secuestrar los permisos ya obtenidos por la aplicación Unity
Punto clave: En Windows, si el juego registra un controlador de URI personalizado, hacer clic en un enlace especialmente diseñado puede activar la vulnerabilidad
| Si el juego tiene este permiso | El atacante puede |
|---|---|
| 📸 Cámara | Grabarte en secreto |
| 🎤 Micrófono | Escucharte |
| 📍 Ubicación | Rastrearte |
| 📱 Contactos | Robar tu agenda |
| 💾 Almacenamiento | Leer/eliminar tus archivos |
| 💰 Pagos | Realizar compras fraudulentas dentro del juego |
| 🔐 Cuenta | Robar la cuenta del juego |
Buena noticia: El atacante no puede superar los límites de permisos de la propia aplicación
Mala noticia: Muchos juegos requieren numerosos permisos (cámara, micrófono, almacenamiento, ubicación, etc.), y el atacante puede explotar completamente estos permisos
Como operador de una plataforma de juegos Android, las peores consecuencias:
[Fuente: Aviso de seguridad oficial de Unity, análisis técnico de GMO Flatt Security]
# Solo se necesita la biblioteca estándar de Python 3.7+, sin dependencias adicionales
python3 --version # Confirmar la versión de Python
# Paso 1: Ejecutar las pruebas
python test_demo.py
# Paso 2: Detectar un solo APK
python unity_vulnerability_checker.py your_game.apk
# Paso 3: Detección por lotes
python unity_vulnerability_checker.py --batch /path/to/apks
# Paso 4: Ver ejemplos de uso
python usage_examples.py
from unity_vulnerability_checker import check_unity_vulnerability
# Detectar un solo archivo APK
result = check_unity_vulnerability("your_game.apk")
# Forma 1: Usar propiedades convenientes
if result.is_vulnerable:
print(f"⚠️ ¡Aplicación afectada! ({result.version})")
print(f"Sugerencia: {result.recommendation}")
elif result.is_safe:
print(f"✅ Aplicación segura")
print(f"Motivo: {result.message}")
else:
print(f"❓ Se requiere revisión manual")
print(f"Motivo: {result.message}")
# Forma 2: Usar el campo status
if result.status == "positive":
print(f"Afectada: {result.version}")
from unity_vulnerability_checker import batch_check
# Escanear un directorio por lotes
results = batch_check("/path/to/apk/folder")
# Filtrar aplicaciones afectadas
vulnerable_apps = [
(name, result)
for name, result in results.items()
if result.is_vulnerable
]
print(f"Se encontraron {len(vulnerable_apps)} aplicaciones afectadas")
for name, result in vulnerable_apps:
print(f" - {name}: {result.version}")
from unity_vulnerability_checker import UnityVulnerabilityChecker
class MyPlatform:
"""Tu sistema de plataforma de juegos"""
def __init__(self):
self.checker = UnityVulnerabilityChecker()
def check_new_upload(self, apk_path: str) -> bool:
"""Verificar APK recién subido, devolver si se puede publicar"""
result = self.checker.check_apk(apk_path)
if result.is_vulnerable:
# Afectado - rechazar publicación
self.notify_developer(
f"Su aplicación está afectada por la vulnerabilidad de Unity\n"
f"Versión: {result.version}\n"
f"Sugerencia: {result.recommendation}"
)
return False
elif result.is_safe:
# Seguro - aprobar publicación
return True
else:
# No se puede determinar - revisión manual
self.queue_manual_review(apk_path, result.message)
return False
def notify_developer(self, message: str):
"""Notificar al desarrollador (implementa tu lógica de notificación)"""
pass
def queue_manual_review(self, apk_path: str):
"""Agregar a la cola de revisión manual (implementa tu lógica)"""
pass
La herramienta devuelve tres tipos de resultados:
Ejemplo de salida (formato conciso de una línea):
# Aplicación afectada
⚠️ Esta aplicación está afectada por CVE-2025-59489 (Unity 2019.2.6f1)
# Aplicación segura (3 casos)
✅ Esta aplicación es segura - No es una aplicación Unity
✅ Esta aplicación es segura - Ya corregida con la herramienta Unity patcher
✅ Esta aplicación es segura - Versión corregida (2019.4.41f1)
# No se puede determinar
❓ No se puede determinar - Es una aplicación Unity pero no se pudo extraer la versión, posiblemente empaquetada u ofuscada, se recomienda revisión manual
⚠️ Archivo demasiado grande para procesar (1500.0MB, límite 1024MB) - Modificar MAX_APK_SIZE_MB en la línea 15 del código a un valor mayor