Открити са няколко уязвимости, които компрометират много клиенти на Matrix

матричен протокол

Matrix е отворен протокол за незабавни съобщения. Той е предназначен да позволи на потребителите да комуникират чрез онлайн чат, глас по IP и видео чат.

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

Споменава се, че за успешно завършване на атака, трябва да има достъп до домашен сървър, контролиран от нападателите (домашен сървър: сървър за съхраняване на клиентска история и акаунти). Използването на криптиране от край до край от страна на клиента не позволява на администратора на сървъра да се намеси в съобщенията, но идентифицираните уязвимости позволяват тази защита да бъде заобиколена.

Проблемите засягат главния клиент на Element Matrix (по-рано Riot) за уеб, десктоп, 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, Siphon, Timmy, Приложения на Гомукс и Панталеймон.

Обърнете внимание, че проблемите с критична сериозност са проблеми с внедряването в matrix-js-sdk и производни, а не са проблеми с протокола в Matrix. Най-новата версия на статията на изследователите, която видяхме, неправилно описва Element като „бенчмарк Matrix клиент“ и обърква грешките при внедряване с по-висока степен на сериозност с критика на протокола с по-ниска степен на тежест.

Има три сценария основна атака:

  1. Администраторът на сървъра на Matrix може да наруши проверката, базирана на емотикони (SAS, кратки вериги за удостоверяване), като използва кръстосани подписи и се представя за друг потребител. Проблемът е причинен от уязвимост (CVE-2022-39250) в кода matrix-js-sdk, свързан с комбинацията от обработка на ID на устройството и ключове за кръстосано подписване.
  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 и засягат само клиенти въз основа на протокола, но това не означава, че няма да останат незабелязани: ако даден потребител бъде заменен, той ще бъде показан в списъка с потребители на чат, а когато бъде добавен устройство, ще се покаже предупреждение и устройството ще бъде маркирано като непроверено (в този случай, веднага след добавяне на неоторизираното устройство, то ще започне да получава публичните ключове, необходими за дешифриране на съобщения.

Ще забележите, че matrix-rust-sdk, hydrogen-sdk и други SDK от XNUMX-ро и XNUMX-то поколение не са били засегнати от грешките в основната причина за критичните проблеми тук. Точно поради тази причина ние работим за замяната на SDK от първо поколение с чиста, внимателно написана реализация на Rust под формата на matrix-rust-sdk, заедно с текущ независим публичен одит.

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

Накрая да вие се интересувате да научите повече за това, можете да проверите подробностите в следваща връзка.


Съдържанието на статията се придържа към нашите принципи на редакторска етика. За да съобщите за грешка, щракнете върху тук.

Бъдете първите, които коментират

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван.

*

*

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