Обнаружено несколько уязвимостей, компрометирующих многих клиентов Matrix

матричный протокол

Matrix — это открытый протокол обмена мгновенными сообщениями. Он предназначен для того, чтобы пользователи могли общаться через онлайн-чат, голосовую связь по IP и видеочат.

Недавно разработчики платформы децентрализованные коммуникацииs «Матрица» выпустила предупреждение о различных уязвимостях которые были обнаружены и они критически в библиотеках matrix-js-sdk, matrix-ios-sdk и matrix-android-sdk2, которые позволяют администраторам серверов выдавать себя за других пользователей и читать сообщения из чатов со сквозным шифрованием (E2EE).

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

Проблемы затрагивают основной клиент Element Matrix (ранее Riot) для Интернета, ПК, iOS и Android, а также для сторонних клиентских приложений, таких как Cinny, Beeper, SchildiChat, Circuli и Synod.im.

Уязвимости не проявляются в библиотеках matrix-rust-sdk, hydro-sdk, Matrix Dart SDK, mautrix-python, mautrix-go и matrix-nio, а также Hydrogen, ElementX, Nheko, FluffyChat, Siphon, Timmy, Гомукс и приложения Пантелеймона.

Обратите внимание, что критические проблемы серьезности — это проблемы реализации в matrix-js-sdk и производных, а не проблемы протокола в Matrix. В последней версии статьи исследователей, которую мы видели, Element неправильно изображается как «эталонный клиент Matrix» и путаются ошибки реализации более высокого уровня серьезности с критикой протокола более низкого уровня серьезности.

Есть три сценария основная атака:

  1. Администратор сервера Matrix может сломать проверку на основе эмодзи (SAS, короткие цепочки аутентификации), используя перекрестные подписи и выдавая себя за другого пользователя. Проблема вызвана уязвимостью (CVE-2022-39250) в коде matrix-js-sdk, связанной с комбинацией обработки идентификатора устройства и ключей перекрестной подписи.
  2. Злоумышленник, контролирующий сервер, может выдать себя за доверенного отправителя и передать поддельный ключ для перехвата сообщений от других пользователей. Проблема связана с уязвимостью в matrix-js-sdk (CVE-2022-39251), matrix-ios-sdk (CVE-2022-39255) и matrix-android-sdk2 (CVE-2022-39248), которая вызвала Клиент некорректно принимает сообщения, адресованные зашифрованным устройствам, используя протокол Megolm вместо Olm, приписывая сообщения отправителю Megolm вместо фактического отправителя.
  3. Используя уязвимости, упомянутые в предыдущем абзаце, администратор сервера может также добавить к учетной записи пользователя фиктивный запасной ключ для извлечения ключей, используемых для шифрования сообщений.

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

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

Вы заметите, что matrix-rust-sdk, hydro-sdk и другие SDK XNUMX-го и XNUMX-го поколения не были затронуты ошибками в основной причине критических проблем здесь. Именно поэтому мы работаем над заменой SDK первого поколения чистой, тщательно написанной реализацией Rust в виде matrix-rust-sdk, дополненной постоянным независимым публичным аудитом.

Уязвимости вызваны ошибками в отдельных реализациях протокола Matrix и они не являются проблемами самого протокола. В настоящее время проект выпустил обновления для проблемных SDK и некоторых клиентских приложений, построенных на их основе.

Наконец да вы заинтересованы в возможности узнать об этом больше, вы можете проверить подробности в по следующей ссылке.


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.