Во фреймворке Electron обнаружена серьезная уязвимость CVE-2018-1000136, которая может угрожать безопасности созданных при помощи него десктопных программ. Как заявляют эксперты, злоумышленники могут использовать межсайтовый скриптинг, чтобы взломать приложение и внедрить в него сторонний код.

Electron позволяет разрабатывать ориентированные на работу в сети программы для Windows, macOS и Linux. Фреймворк предоставляет разработчикам удобную графическую среду и поддерживает HTML, JavaScript и CSS. На нем работают сотни приложений, включая Skype, Discord, Slack, Twitch и Signal.

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

Взаимодействие с Node.js регулирует переменная nodeIntegration, по умолчанию установленная в значение false. Проблема в том, что обращение к сторонним API может зависеть и от параметров компонента WebView, который отвечает за отображение веб-контента.

При открытии в приложении сайта для него создается отдельный процесс, который не имеет собственных разрешений. Чтобы не допустить повышения привилегий и узнать, возможно ли обращение к Node.js, специальная функция mergeBrowserWindowOptions сверяется с содержимым webPreferences. Если параметр webviewTag находится в значении false, то использование сторонних API запрещается.

Однако разработчики не всегда корректно прописывают эту строку в перечне настроек веб-контента. Как оказалось, в таких случаях система не присваивает nodeIntegration значения по умолчанию, и злоумышленник может принудительно активировать эту функцию.

Уязвимость открывает возможности для широкого спектра XSS-атак. Специалисты считают, что преступникам не составит труда найти слабое место в пакетном коде программ. Под угрозой оказались приложения, разработанные при помощи Electron версий 1.7.13, 1.8.4 и 2.0.0 beta3, а также более ранних релизов каждой линейки.

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

Оценить масштабы угрозы сложно в связи с тем, что даже разработанные в старой версии фреймворка приложения могут быть безопасны. Например, создатели мессенджера Signal и браузера Brave заявили, что проблема не затронула их продукты. Многие другие вендоры пока никак не прокомментировали ситуацию.

В начале года в Electron уже находили серьезную ошибку. Уязвимость CVE-2018-1000006 позволяла злоумышленникам удаленно выполнять вредоносный код в приложениях Windows, которые используются по умолчанию.

Категории: Главное, Уязвимости