Mendeteksi beberapa kerentanan yang membahayakan banyak pelanggan Matrix

protokol matriks

Matrix adalah protokol pesan instan terbuka. Ini dirancang untuk memungkinkan pengguna berkomunikasi melalui obrolan online, voice over IP, dan obrolan video.

Baru-baru ini pengembang platform komunikasi terdesentralisasis «Matrix» merilis peringatan tentang berbagai kerentanan yang terdeteksi dan mereka kritis di library matrix-js-sdk, matrix-ios-sdk, dan matrix-android-sdk2 yang memungkinkan administrator server untuk meniru pengguna lain dan membaca pesan dari obrolan terenkripsi ujung ke ujung (E2EE).

Disebutkan itu untuk berhasil menyelesaikan serangan, server rumah yang dikendalikan oleh penyerang harus diakses (server rumah: server untuk menyimpan riwayat dan akun klien). Penggunaan enkripsi ujung ke ujung di sisi klien tidak memungkinkan administrator server untuk campur tangan dalam pengiriman pesan, tetapi kerentanan yang teridentifikasi memungkinkan perlindungan ini dielakkan.

Masalah memengaruhi klien Element Matrix utama (sebelumnya Riot) untuk web, desktop, iOS, dan Android, serta aplikasi klien pihak ketiga seperti Cinny, Beeper, SchildiChat, Circuli, dan Synod.im.

Kerentanan tidak muncul di library matrix-rust-sdk, hydrogen-sdk, Matrix Dart SDK, mautrix-python, mautrix-go, dan matrix-nio, serta Hydrogen, ElementX, Nheko, FluffyChat, Siphon, Timmy, Gomuks, dan aplikasi Pantalaimon.

Perhatikan bahwa masalah tingkat keparahan kritis adalah masalah implementasi di matrix-js-sdk dan turunannya, dan bukan masalah protokol di Matrix. Versi terbaru dari makalah para peneliti yang kami lihat salah menggambarkan Element sebagai "klien Matrix benchmark" dan mengacaukan kesalahan implementasi dengan tingkat keparahan yang lebih tinggi dengan kritik protokol dengan tingkat keparahan yang lebih rendah.

Ada tiga skenario serangan utama:

  1. Administrator server Matrix dapat mematahkan verifikasi berbasis emoji (SAS, Short Authentication Chains) dengan menggunakan tanda tangan silang dan meniru identitas pengguna lain. Masalah ini disebabkan oleh kerentanan (CVE-2022-39250) dalam kode matrix-js-sdk yang terkait dengan kombinasi penanganan ID perangkat dan kunci penandatanganan silang.
  2. Penyerang yang mengontrol server dapat menyamar sebagai pengirim tepercaya dan memberikan kunci palsu untuk mencegat pesan dari pengguna lain. Masalah ini disebabkan oleh kerentanan dalam matrix-js-sdk (CVE-2022-39251), matrix-ios-sdk (CVE-2022-39255), dan matrix-android-sdk2 (CVE-2022-39248), yang menyebabkan klien salah menerima pesan yang dialamatkan ke perangkat terenkripsi menggunakan protokol Megolm alih-alih Olm , menghubungkan pesan ke pengirim Megolm alih-alih pengirim yang sebenarnya.
  3. Dengan memanfaatkan kerentanan yang disebutkan dalam paragraf sebelumnya, administrator server juga dapat menambahkan kunci cadangan dummy ke akun pengguna untuk mengekstrak kunci yang digunakan untuk mengenkripsi pesan.

Para peneliti yang mengidentifikasi kerentanan juga menunjukkan serangan yang menambahkan pengguna pihak ketiga ke obrolan atau sambungkan perangkat pihak ketiga ke pengguna. Serangan didasarkan pada fakta bahwa pesan layanan yang digunakan untuk menambahkan pengguna ke obrolan tidak ditautkan ke kunci pembuat obrolan dan dapat dibuat oleh administrator server.

Pengembang proyek Matrix mengklasifikasikan kerentanan ini sebagai minor, karena manipulasi semacam itu tidak melekat pada Matrix dan hanya memengaruhi klien berdasarkan protokol, tetapi ini tidak berarti bahwa mereka tidak akan luput dari perhatian: jika pengguna diganti, itu akan ditampilkan dalam daftar pengguna obrolan, dan ketika ditambahkan perangkat, peringatan akan ditampilkan dan perangkat akan ditandai sebagai belum diverifikasi (dalam hal ini, segera setelah menambahkan perangkat yang tidak sah, perangkat akan mulai menerima kunci publik yang diperlukan untuk mendekripsi pesan.

Anda akan melihat bahwa matrix-rust-sdk, hydrogen-sdk, dan SDK generasi ke-XNUMX dan ke-XNUMX lainnya tidak terpengaruh oleh bug di akar penyebab masalah kritis di sini. Inilah tepatnya mengapa kami bekerja untuk mengganti SDK generasi pertama dengan implementasi Rust yang bersih dan ditulis dengan hati-hati dalam bentuk matrix-rust-sdk, lengkap dengan audit publik independen yang berkelanjutan.

Kerentanan disebabkan oleh bug dalam implementasi individu dari protokol Matrix dan itu bukan masalah protokol itu sendiri. Saat ini, proyek telah merilis pembaruan untuk SDK yang bermasalah dan beberapa aplikasi klien yang dibangun di atasnya.

Akhirnya ya Anda tertarik untuk mengetahui lebih banyak tentangnya, Anda dapat memeriksa detailnya di link berikut.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.