Уязвимости в Signal Desktop и в платформе Electron

17 мая 2018 года

В Signal Desktop, построенной на базе платформы Electron версии мессенджера Signal для настольных систем, выявлены две уязвимости ( CVE-2018-10994 (Архивная копия от 27 апреля 2020 на Wayback Machine), CVE-2018-11101 (Архивная копия от 17 мая 2019 на Wayback Machine)), позволяющие выполнить произвольный JavaScript-код в контексте JavaScript-движка приложения через отправку специально оформленного сообщения. Проблемы устранены в выпуске Signal Desktop 1.11.0, мобильные приложения проблемам не подвержены.

Первая уязвимость (Архивная копия от 27 апреля 2020 на Wayback Machine) позволяет передать в сообщении специально оформленную ссылку, показ принятого сообщения с которой приведёт к выполнению JavaScript-кода без каких-либо действий со стороны пользователя. Например, отправка ссылки "http://hacktheplanet/?p=%3Ciframe%20src="/etc/passwd"%3E%3C/iframe%3E%20PWONED(недоступная ссылка)" приведёт к открытию файла /etc/passwd в iframe. Разработчики Signal опубликовали обновление с устранением проблем спустя всего 2 часа после уведомления о наличии уязвимостей.

Скоро выяснилось, что существует (Архивная копия от 17 мая 2019 на Wayback Machine) ещё один метод проведения атаки XSS, реализуемый через подстановку в сообщения HTML-тегов iframe, ссылающегося на внешний ресурс. Выполнение HTML-кода производится не при приёме и открытии, а при попытке ответа на такие сообщения. В итоге был подготовлен прототип эксплоита на JavaScript, который отправляет на внешний сервер содержимое всех переписок, которые производятся в приложении. Второй метод атаки из-за ограничений CSP допускает только включение локальных файлов, для обхода CSP в ходе демонстрационной атаки начальный кода скрипта был замещён на SMB-разделе.

Дополнительно можно отметить уязвимость CVE-2018-1000136, затрагивающую непосредственно платформу Electron, которая позволяет обойти ограничение доступа к API Node.js (nodeIntegration: false), что может применяться для организации выполнения кода в контексте операционной системы, если у злоумышленника имеется возможность выполнить JavaScript в контексте приложения.

Суть уязвимости в том, что если разработчик приложения явно не указал в параметрах конфигурации файла webPreferences "webviewTag: false", при выполнении JavaScript можно воспользоваться доступным API Electron для создания окна с новым компонентом WebView, настройки которого уже контролируются атакующим и для этого окна можно выставить режим "nodeIngration: true". Проблема устранена до раскрытия информации об уязвимости в мартовском обновлении платформы Electron.

Так же можно упомянуть о выявлении вредоносного ПО, нацеленного на проведение атаки на десктоп-приложение Telegram на платформе Windows. Вредоносное ПО собирает остаточные данные из кэша приложения, который может включать информацию о сеансах, контактах и предыдущих чатах. Также вредоносное ПО осуществляет поиск и передачу map-файлов, в которых хранятся ключи шифрования (защищены паролем и зашифрованы AES, вероятно для получения пароля может применяться отдельное вредоносное ПО с кейлоггером). Вредоносное ПО атакует только десктоп-редакцию Telegram, так как она не поддерживает секретные чаты и включает небезопасные настройки по умолчанию.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Уязвимости в Signal Desktop и в платформе Electron», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.