Уязвимость в Electron позволяет внедрять бэкдоры в Signal, 1Password и Slack

vulnerability

Исследователи кибербезопасности обнаружили новую технику эксплуатации уязвимости, которая позволяет злоумышленникам обходить проверки целостности кода и внедрять вредоносный код в популярные десктопные приложения, включая Signal, 1Password, Slack и Google Chrome. Уязвимость, получившая идентификатор CVE-2025-55305, затрагивает практически все приложения, созданные на базе фреймворка Electron, который широко используется для разработки кроссплатформенного программного обеспечения с помощью веб-технологий.

Детали уязвимости

Специалист компании Trail of Bits, известный под псевдонимом Shadow, провел детальный анализ механизмов контроля целостности в Electron. Фреймворк предоставляет так называемые "предохранители" (fuses), предназначенные для проверки соответствия JavaScript-файлов приложения оригинальным файлам, упакованным разработчиком. Два ключевых предохранителя - EnableEmbeddedAsarIntegrityValidation и OnlyLoadAppFromAsar - гарантируют, что никакой код не может быть добавлен или изменен без обнаружения.

Однако эти механизмы защиты не распространяются на снимки кучи V8 (V8 heap snapshots) - функцию повышения производительности, унаследованную от Chromium, которая загружает предварительно скомпилированное состояние JavaScript в память подобно разморозке готовой пиццы. Злоумышленники могут манипулировать этими снимками для внедрения неподписанного кода, а проверки целостности их игнорируют.

Атакующий с правами записи в папку установки приложения - часто это доступные для пользователя локации вроде %AppData%\Local в Windows или /Applications в macOS - может внедрить бэкдор в любое Electron-приложение без необходимости взлома цифровых подписей кода. При запуске приложения модифицированный снимок кучи выполняется до каких-либо проверок целостности, позволяя злоумышленнику переопределять ключевые JavaScript-функции.

Shadow продемонстрировал эту технику, заменив функцию Array.isArray на код, выполняющий произвольные команды. В одном из тестов модификация этой функции вызывала аварийное завершение работы Slack, что доказывало выполнение неподписанного кода из снимка вопреки предохранителям Electron. Исследователь затем создал функциональные образцы бэкдоров для Slack, 1Password и Signal. Для Slack вредоносная нагрузка внедряла кейлоггер в окна чата, а для Signal и 1Password атака могла привести к хищению сообщений или данных хранилища.

Команда ответственно сообщила о проблеме разработчикам Electron, которые оперативно выпустили патч. Компания 1Password устранила уязвимость в версии 8.11.8-40. Signal и Slack также выпустили обновления безопасности. Джейкоб ДеПрист, директор по информационной безопасности 1Password, заявил: "Нам стало известно об CVE-2025-55305 через ответственное раскрытие информации от Trail of Bits, и мы исправили уязвимость. Защита данных наших клиентов всегда остается нашим высшим приоритетом".

Обнаруженная уязвимость подчеркивает более широкий риск для всего программного обеспечения на базе Chromium. Исследователь Эмилио Лопес расширил эту технику для внедрения бэкдоров в Chrome и родственные браузеры, установленные в доступных для записи папках. Поскольку модель угроз Chrome исключает локальные атаки, такие бэкдоры могут оставаться незамеченными, при этом успешно проходя проверки цифровых подписей.

Для защиты от подобных атак разработчикам приложений на Electron и Chromium рекомендуется активировать полные проверки целостности для снимков кучи или переместить файлы снимков в read-only расположения. Пользователям настоятельно рекомендуется безотлагательно обновить Signal, 1Password, Slack и другие Electron-приложения до последних версий. Обеспечение целостности кода должно охватывать каждый компонент, включая скрытые оптимизации производительности, чтобы предотвратить превращение доверенных приложений в инструменты скрытного сохранения доступа для злоумышленников.

Ссылки

Комментарии: 0