最近, 平台開發商 分散式通訊s «Matrix» 發布了有關各種漏洞的警告 被檢測到並且 他們很關鍵 在 matrix-js-sdk、matrix-ios-sdk 和 matrix-android-sdk2 庫中,允許服務器管理員模擬其他用戶並從端到端加密聊天 (E2EE) 中讀取消息。
有人提到 要成功完成攻擊,必須訪問攻擊者控制的家庭服務器 (家庭服務器:存儲客戶歷史和帳戶的服務器)。 在客戶端使用端到端加密不允許服務器管理員干預消息傳遞,但已識別的漏洞允許繞過這種保護。
問題影響主 Element Matrix 客戶端 (以前稱為 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、Siphon、Timmy、 Gomuks 和 Pantalaimon 應用程序。
請注意,嚴重的嚴重性問題是 matrix-js-sdk 和衍生產品中的實現問題,而不是 Matrix 中的協議問題。 我們看到的最新版本的研究人員論文錯誤地將 Element 描述為“基準矩陣客戶端”,並將較高嚴重性的實施錯誤與較低嚴重性的協議批評混為一談。
有三種情況 主攻:
- Matrix 服務器管理員可以通過使用交叉簽名和冒充另一個用戶來破壞基於表情符號的驗證(SAS,短驗證鏈)。 該問題是由與設備 ID 處理和交叉簽名密鑰組合相關的 matrix-js-sdk 代碼中的漏洞 (CVE-2022-39250) 引起的。
- 控制服務器的攻擊者可以冒充受信任的發件人並傳遞假密鑰來攔截來自其他用戶的消息。 該問題是由於 matrix-js-sdk (CVE-2022-39251)、matrix-ios-sdk (CVE-2022-39255) 和 matrix-android-sdk2 (CVE-2022-39248) 中的漏洞導致的客戶端錯誤地接受使用 Megolm 協議而不是 Olm 發送給加密設備的消息,將消息歸因於 Megolm 發送者而不是實際發送者。
- 通過利用上一段中提到的漏洞,服務器管理員還可以向用戶帳戶添加一個虛擬備用密鑰,以提取用於加密消息的密鑰。
發現漏洞的研究人員 還演示了將第三方用戶添加到聊天中的攻擊 或將第三方設備連接到用戶。 攻擊基於這樣一個事實,即用於將用戶添加到聊天中的服務消息未鏈接到聊天創建者的密鑰,並且可以由服務器管理員生成。
Matrix 項目的開發人員將這些漏洞歸類為次要漏洞, 因為這樣的操作不是 Matrix 所固有的,只會影響基於協議的客戶端,但這並不意味著它們不會被忽視:如果用戶被替換,它將顯示在聊天用戶列表中,並在添加時顯示設備,將顯示警告並將設備標記為未驗證(在這種情況下,添加未經授權的設備後,它將立即開始接收解密消息所需的公鑰。
您會注意到 matrix-rust-sdk、hydrogen-sdk 和其他第 XNUMX 代和第 XNUMX 代 SDK 不受此處關鍵問題根本原因中的錯誤的影響。 這正是為什麼我們一直在努力用一個乾淨、精心編寫的 Rust 實現以 matrix-rust-sdk 的形式替換第一代 SDK,並完成持續的獨立公共審計。
漏洞是由個別實現中的錯誤引起的 矩陣協議和 它們不是協議本身的問題。 目前,該項目已經發布了有問題的 SDK 的更新以及一些基於它們構建的客戶端應用程序。
最後是 您有興趣了解更多信息,您可以在中查看詳細信息 以下鏈接。