Специалист компании Trustwave Брендан Скарвелл (Brendan Scarvell) обнаружил опасную уязвимость (CVE-2018-1000136) в составе опенсорсного фреймворка Electron. Баг допускает удаленное исполнение произвольного кода. Из-за этого десятки приложений, в состав которых входит Electron, оказались под угрозой. Среди них: Skype, GitHub Desktop, Slack, WhatsApp, Signal, Discord, Twitch, браузер Brave и WordPress.com, а также многие другие.
«Приложения Electron, в основном, представляют собой веб-приложения, а значит, они чувствительны к XSS (cross-site scripting) атакам из-за некорректной очистки полученных от пользователя данных. По умолчанию Electron-приложения представляют доступ не только к своим собственным API, но также позволяют получить доступ ко всем встроенным модулям Node.js. Из-за этого XSS-атака становится особенно опасной, ведь полезная нагрузка атакующего может исполнить совсем неприятные вещи, например, запросить модуль child_process и выполнить системные команды на клиентской стороне, — рассказывает Скарвелл в блоге компании. — Вы можете отозвать доступ для Node.js, установив nodeIntegration на значение false в webPreferences своего приложения».
При этом эксперт подчеркивает, что если приложение уязвимо перед XSS, и ряд настроек в webPreferences не установлены вручную, злоумышленник имеет возможность вновь активировать nodeIntegration и осуществить атаку. В блоге Trustwave был опубликован proof-of-concept эксплоит.
Скарвелл уведомил разработчиков Electron о проблеме еще в начале текущего года, после чего в марте было выпущено исправление, устраняющее уязвимость (версии 1.7.13, 1.8.4 и 2.0.0-beta.4). Кроме того, сообщается, что уязвимость не представляет угрозы для мессенджера Signal и браузера Brave.