В приложении голосового общения Discord обнаружена опасная уязвимость
Уязвимость, позволяющую удаленно выполнять код потенциального злоумышленника, обнаружил в клиентском приложении сервиса голосового общения (VoIP) Discrod исследователь информационной безопасности Масато Кинугава. Об этом он сообщил 18 октября в своем блоге.
Уязвимость возникла из-за отключения настройки «contextIsolation» в программной платформе Electron на базе Node.js, на которой основан клиент для персональных компьютеров Discord. Вместе с возможностью встраивания компонентов через механизм iframe, это позволяет произвести атаку типа межсайтовый скриптинг (XSS).
Кинугава обнаружил компонент для просмотра 3D-моделей Sketchfab, который внесен в «белый список» безопасных приложений для Discord. Его код позволял использовать XSS-атаку, но не получить возможность полноценного удаленного исполнения кода (RCE, Remote Code Execution).
Далее исследователь обратил внимание на уязвимость CVE-2020-15174 платформы Electron. Событие «will-navigate», которое приложения используют для предотвращения переходов к неожиданным точкам назначения, можно обойти в момент навигации по родительскому окну (frame).
Использовав все три проблемы в комплексе, Кинугава добился удаленного исполнения кода.
Он отправил отчет о проделанной работе через систему вознаграждений за найденные уязвимости. В качестве вознаграждения исследователь получил $5 тыс. от Discord и $300 от разработчиков Sketchfab. Отчет выложен в публичный доступ только после того, как выявленные проблемы были исправлены в соответствующих приложениях.