LINUXTALKS.CO

Критические уязвимости, компрометирующие сквозное шифрование во многих Matrix-клиентах

 

L


0

0

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

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

Для успешного совершения атаки требуется обращение к подконтрольному атакующим домашнему серверу (homeserver - сервер для хранения истории и учётных записей клиентов). Применение сквозного шифрования на стороне клиента не позволяет администратору сервера вклиниваться в обмен сообщениями, но выявленные уязвимости дают возможность обойти данную защиту. Проблемы затрагивают основной Matrix-клиент Element (бывший Riot) для Web, настольных систем, iOS и Android, а также сторонние клиентские приложения, включая Cinny, Beeper, SchildiChat, Circuli и Synod.im. Уязвимости не проявляются в библиотеках matrix-rust-sdk, hydrogen-sdk, Matrix Dart SDK, mautrix-python, mautrix-go и matrix-nio, а также в приложениях Hydrogen, ElementX, Nheko, FluffyChat, Syphon, Timmy, Gomuks и Pantalaimon.

Выделяются три основных сценария проведения атаки:

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

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

// cc-by opennet.ru
// converted with crypt’s opennet autoreposter

>>> Подробности

★★☆☆☆

Р-Е-Ш-Е-Т-О

Уязвимости вызваны ошибками в отдельных реализациях протокола Matrix и не являются проблемами самого протокола.

Опять погромисты виноваты.

Для успешного совершения атаки требуется обращение к подконтрольному атакующим домашнему серверу (

Хорошо, что у меня свой сервак с выключенной федерацией.

cocucka    
★★★★★★★★★★★
Linux / Firefox
Ответ на: комментарий от cocucka

кому нужен сервак без федерации. там весь смысл в том, чтобы тебе могли чего-то написать. а у тебя, как емейл-сервер, который только для мейл-листов.

crypt    
★★☆☆☆
FreeBSD / Chrome
Ответ на: комментарий от rezedent12

TLS это encryption-in-transit, а мне нужен ещё и encryption-at-rest.

cocucka    
★★★★★★★★★★★
Linux / Firefox
Ответ на: комментарий от rezedent12

Плюс, если кто-то поставит себе MiTM от роскомопзора, то сможет всех скопрометировать. А с Е2Е шифрованием роскомпозор соснёт криптографического тунца.

cocucka    
★★★★★★★★★★★
Linux / Firefox
Ограничение на отправку комментариев: только для зарегистрированных пользователей, score>=90