Уязвимость в Unity Runtime угрожает миллионам мобильных приложений

vulnerability

Японский специалист по кибербезопасности Рёта К. из компании GMO Flatt Security Inc. обнаружил критическую уязвимость в среде выполнения Unity, позволяющую выполнение произвольного кода. Проблема, получившая идентификатор CVE-2025-59489, затрагивает игры и приложения, созданные на Unity 2017.1 и более поздних версиях.

Детали уязвимости

Открытие было сделано в мае 2025 года во время участия исследователя в Meta Bug Bounty Researcher Conference. Уязвимость связана с механизмом обработки интентов (намерений) в Unity Runtime для Android. Как выяснилось, любое приложение, установленное на устройстве, может отправлять специально сконструированные интенты с параметром unity, который затем интерпретируется как аргументы командной строки.

Технический анализ показал, что через аргумент xrsdk-pre-init-library злоумышленники могут загружать произвольные разделяемые библиотеки формата .so. Это происходит потому, что значение данного аргумента передается напрямую в функцию dlopen, что позволяет выполнять вредоносный код в контексте целевого Unity-приложения с его правами доступа.

Наиболее вероятным сценарием эксплуатации является локальная атака, когда вредоносное приложение, уже установленное на устройстве, запускает Unity-приложение с аргументом -xrsdk-pre-init-library, указывающим на заранее подготовленную библиотеку. При этом эксплойт извлекает нативную библиотеку с установленным атрибутом android:extractNativeLibs в true из файла AndroidManifest.xml.

Теоретически возможна и удаленная эксплуатация через браузер, если приложение экспортирует UnityPlayerActivity или UnityPlayerGameActivity с категорией android.intent.category.BROWSABLE. В этом случае веб-сайты могут использовать intent-URL для передачи вредоносных параметров. Однако строгая политика SELinux в Android препятствует загрузке файлов из каталога загрузок, что значительно усложняет удаленную атаку.

Для успешной удаленной эксплуатации необходимо выполнение двух условий: приложение должно экспортировать соответствующие активности с категорией BROWSABLE, а также записывать файлы с контролируемым злоумышленником содержимым в свое приватное хранилище, например, через механизм кэширования.

Важно отметить, что уязвимость затрагивает не только Android, но и другие платформы, включая Windows, macOS и Linux. По данным официального сайта Unity, на этом движке построены 70% ведущих мобильных игр, включая такие популярные проекты как Among Us и Pokemon GO.

Компания Unity уже выпустила патчи для версий, начиная с Unity 2019.1, а также предоставила инструмент Unity Binary Patch для устранения проблемы. Разработчикам настоятельно рекомендуется загрузить обновленные версии движка, перекомпилировать affected игры и приложения, а также повторно опубликовать их в магазинах приложений.

Эксперты отмечают оперативность реакции компании Unity на обнаруженную проблему и ее продолжающиеся усилия по повышению безопасности платформы.

Данный случай демонстрирует, что уязвимости могут присутствовать не только в самом коде приложений, но и в фреймворках и библиотеках, которые разработчики используют в своих проектах. Это подчеркивает важность регулярного обновления зависимостей и проведения тщательного анализа безопасности всего программного стека.

Обнаружение уязвимости CVE-2025-59489 вновь подтверждает необходимость комплексного подхода к кибербезопасности, когда защита выстраивается на всех уровнях - от базовых библиотек до конечных приложений. Для миллионов пользователей Unity-приложений во всем мире оперативное обновление разработчиками своих продуктов становится критически важной мерой защиты.

Ссылки

Комментарии: 0