Новая брешь в Electron: Skype, Twitch, GitHub, могут быть в опасности

Новая брешь в Electron: Skype, Twitch, GitHub, могут быть в опасности

Эксперты в области безопасности обнаружили новую уязвимость в разработанном GitHub фреймворке Electron. Популярные настольные приложения — Skype, Slack, GitHub Desktop, Twitch, WordPress.com и другие — могут быть в опасности.

Напомним, что Electron позволяет разрабатывать нативные графические приложения для настольных операционных систем с помощью веб-технологий. Фреймворк включает в себя Node.js, для работы с back-end, и библиотеку рендеринга из Chromium.

API-интерфейсы Node.js и встроенные модули предоставляют разработчикам более широкую интеграцию с ОС, соответственно, позволяя получить доступ к большему количеству функций ОС. Чтобы помешать использованию функций ОС во вредоносных целях, команда Electron создала механизм, который предотвращает атаки на приложения.

«Приложения на основе Electron, как правило, представляют собой веб-приложения. Это значит, что они подвержены риску атак межсайтового скриптинга из-за неспособности правильно обработать вводимую пользователем информацию», — говорится в отчете, опубликованном Trustwave.

«Стандартное приложение Electron включает в себя доступ не только к собственным API, но также ко всем встроенным модулям Node.js. Благодаря этому возможность XSS-атаки сильно возрастает, так как злоумышленник может выполнить системные команды на стороне клиента».

У приложений, запускающих HTML и JS-код, по умолчанию включена опция «nodeIntegration: false», это значит, что доступ к API и модулям Node.js по умолчанию отключен. Тег WebView позволяет разработчикам встраивать контент — например, веб-страницу — в приложение на основе Electron и запускать его как отдельный процесс.

«При использовании тега WebView вы также можете передавать несколько атрибутов, включая nodeIntegration», — продолжают эксперты.

Исследователь Trustwave Брендан Скарвелл обнаружил, что можно изменить параметр nodeIntegration на «true», что позволит вредоносному приложению получить доступ к API и модулям Node.js и использовать дополнительные функции ОС.

Уязвимость можно проэксплуатировать только в том случае, если разработчик приложения специально не установит параметр «webviewTag: false» в файле конфигурации webPreferences.

Эксперт опубликовал подтверждающий концепцию бреши код (proof-of-concept), который злоумышленник может использовать для XSS-атаки.