Популярная MOBA-игра Dota 2 стала жертвой кибератаки, в ходе которой злоумышленники использовали уязвимость в движке JavaScript V8 для удаленного выполнения вредоносного кода на компьютерах игроков. Эксперты по безопасности из Avast обнаружили четыре пользовательских игровых режима, содержащих эксплойт для уязвимости CVE-2021-38003, которая позволяла злоумышленникам получать контроль над системами ничего не подозревающих игроков.
Описание
Проблема возникла из-за того, что в Dota 2 использовалась устаревшая версия движка V8, скомпилированная еще в декабре 2018 года. Эта версия содержала множество известных уязвимостей, включая CVE-2021-38003, которая ранее активно эксплуатировалась в дикой природе. Поскольку V8 в Dota 2 не был изолирован в песочнице, успешная эксплуатация уязвимости позволяла злоумышленникам выполнять произвольный код на машинах других игроков.
Valve, разработчик Dota 2, оперативно отреагировала на сообщение Avast, выпустив обновление 12 января, в котором уязвимая версия V8 была заменена на актуальную. Кроме того, компания удалила вредоносные игровые режимы, уведомила пострадавших игроков и внедрила дополнительные меры защиты, чтобы снизить риски подобных атак в будущем.
Как работала атака
Dota 2 использует фреймворк Panorama для создания пользовательского интерфейса на основе HTML, CSS и JavaScript. Вредоносные скрипты могли быть внедрены через пользовательские игровые режимы, которые создаются сообществом и доступны для установки прямо из игры. Хотя Valve проводит проверку публикуемых режимов, злоумышленникам удалось обойти защиту, скрыв вредоносный код в легитимных файлах.
Первый обнаруженный вредоносный режим, названный «test addon plz ignore», содержал эксплойт для CVE-2021-38003, который использовал уязвимость в V8 для получения контроля над системой. Интересно, что злоумышленник оставил в коде множество отладочных сообщений и закомментированных фрагментов, что свидетельствует о том, что он тестировал эксплойт перед использованием.
Позже были обнаружены еще три вредоносных режима, созданных тем же автором. В отличие от первого случая, они содержали более скрытный бэкдор, который загружал вредоносный JavaScript с удаленного сервера. Это позволяло злоумышленнику обновлять эксплойт без необходимости публиковать новые версии режима.
Последствия и риски
По данным Valve, атака затронула менее 200 игроков, но потенциальные последствия могли быть гораздо серьезнее. Если бы злоумышленник решил массово распространить эксплойт через популярные игровые режимы или найти XSS-уязвимость в интерфейсе игры, под угрозой оказались бы миллионы пользователей.
Эксперты отмечают, что подобные атаки подчеркивают важность своевременного обновления компонентов с открытым исходным кодом, таких как V8. Кроме того, разработчикам игр стоит задуматься о дополнительной изоляции пользовательского контента, чтобы минимизировать риски эксплуатации уязвимостей.
Вывод
Хотя Valve быстро устранила проблему, этот инцидент служит напоминанием о том, что даже популярные игры с многомиллионной аудиторией могут стать мишенью для киберпреступников. Игрокам рекомендуется быть осторожными при установке пользовательских модов и регулярно обновлять клиент игры, чтобы защититься от возможных угроз.