Đã phát hiện một số lỗ hổng làm ảnh hưởng đến nhiều khách hàng của Matrix

giao thức ma trận

Ma trận là một giao thức nhắn tin tức thời mở. Nó được thiết kế để cho phép người dùng giao tiếp qua trò chuyện trực tuyến, thoại qua IP và trò chuyện video.

Gần đây nhà phát triển nền tảng thông tin liên lạc phi tập trungs «Matrix» đã đưa ra cảnh báo về các lỗ hổng bảo mật khác nhau đã được phát hiện và họ rất quan trọng trong các thư viện matrix-js-sdk, matrix-ios-sdk và matrix-android-sdk2 cho phép quản trị viên máy chủ mạo danh người dùng khác và đọc tin nhắn từ các cuộc trò chuyện được mã hóa đầu cuối (E2EE).

Nó được đề cập rằng để hoàn thành một cuộc tấn công thành công, một máy chủ gia đình do những kẻ tấn công kiểm soát phải được truy cập (máy chủ gia đình: máy chủ lưu trữ lịch sử và tài khoản của khách hàng). Việc sử dụng mã hóa end-to-end ở phía máy khách không cho phép quản trị viên máy chủ can thiệp vào việc nhắn tin, nhưng các lỗ hổng được xác định cho phép phá vỡ biện pháp bảo vệ này.

Các vấn đề ảnh hưởng đến ứng dụng khách Ma trận yếu tố chính (trước đây là Riot) cho web, máy tính để bàn, iOS và Android, cũng như các ứng dụng khách của bên thứ ba như Cinny, Beeper, SchildiChat, Circuli và Synod.im.

Các lỗ hổng không xuất hiện trong các thư viện matrix-gỉ-sdk, hydro-sdk, Matrix Dart SDK, mautrix-python, mautrix-go và matrix-nio, cũng như Hydrogen, ElementX, Nheko, FluffyChat, Siphon, Timmy, Ứng dụng Gomuks và Pantalaimon.

Lưu ý rằng các vấn đề về mức độ nghiêm trọng quan trọng là các vấn đề triển khai trong ma trận-js-sdk và các dẫn xuất, và không phải là các vấn đề về giao thức trong Ma trận. Phiên bản mới nhất của bài báo của các nhà nghiên cứu mà chúng tôi đã thấy mô tả không chính xác Element là "ứng dụng khách Ma trận điểm chuẩn" và nhầm lẫn các lỗi triển khai có mức độ nghiêm trọng cao hơn với chỉ trích giao thức có mức độ nghiêm trọng thấp hơn.

Có ba tình huống cuộc tấn công chính:

  1. Quản trị viên máy chủ Ma trận có thể phá vỡ xác minh dựa trên biểu tượng cảm xúc (SAS, Chuỗi xác thực ngắn) bằng cách sử dụng chữ ký chéo và mạo danh người dùng khác. Sự cố do lỗ hổng bảo mật (CVE-2022-39250) trong mã ma trận-js-sdk liên quan đến sự kết hợp giữa xử lý ID thiết bị và khóa ký chéo.
  2. Kẻ tấn công kiểm soát máy chủ có thể mạo danh người gửi đáng tin cậy và chuyển khóa giả để chặn tin nhắn từ những người dùng khác. Sự cố là do một lỗ hổng trong matrix-js-sdk (CVE-2022-39251), matrix-ios-sdk (CVE-2022-39255) và matrix-android-sdk2 (CVE-2022-39248), gây ra Máy khách chấp nhận không chính xác các thư được gửi đến các thiết bị được mã hóa bằng giao thức Megolm thay vì Olm, quy các thư cho người gửi Megolm thay vì người gửi thực tế.
  3. Bằng cách khai thác các lỗ hổng được đề cập trong đoạn trước, quản trị viên máy chủ cũng có thể thêm một khóa dự phòng giả vào tài khoản người dùng để trích xuất các khóa được sử dụng để mã hóa tin nhắn.

Các nhà nghiên cứu đã xác định lỗ hổng bảo mật cũng đã chứng minh các cuộc tấn công thêm người dùng bên thứ ba vào cuộc trò chuyện hoặc kết nối thiết bị của bên thứ ba với người dùng. Các cuộc tấn công dựa trên thực tế là các tin nhắn dịch vụ được sử dụng để thêm người dùng vào cuộc trò chuyện không được liên kết với khóa của người tạo trò chuyện và có thể được tạo bởi quản trị viên máy chủ.

Các nhà phát triển của dự án Matrix đã phân loại các lỗ hổng này là nhỏ, vì các thao tác như vậy không có trong Ma trận và chỉ ảnh hưởng đến các máy khách dựa trên giao thức, nhưng điều này không có nghĩa là họ sẽ không bị chú ý: nếu người dùng bị thay thế, nó sẽ được hiển thị trong danh sách người dùng trò chuyện và khi được thêm vào một thiết bị, một cảnh báo sẽ được hiển thị và thiết bị đó sẽ được đánh dấu là chưa được xác minh (trong trường hợp này, ngay sau khi thêm thiết bị trái phép, nó sẽ bắt đầu nhận các khóa công khai cần thiết để giải mã tin nhắn.

Bạn sẽ nhận thấy rằng ma trận-gỉ-sdk, hydro-sdk và các SDK thế hệ thứ XNUMX và thứ XNUMX khác không bị ảnh hưởng bởi các lỗi trong nguyên nhân gốc rễ của các vấn đề nghiêm trọng ở đây. Đây chính là lý do tại sao chúng tôi đang làm việc để thay thế các SDK thế hệ đầu tiên bằng cách triển khai Rust được viết cẩn thận, rõ ràng dưới dạng ma trận-gỉ-sdk, hoàn thành với một cuộc kiểm tra công khai độc lập liên tục.

Các lỗ hổng do lỗi trong quá trình triển khai riêng lẻ gây ra của giao thức Ma trận và chúng không phải là vấn đề của chính giao thức. Hiện tại, dự án đã phát hành các bản cập nhật cho các SDK có vấn đề và một số ứng dụng khách được xây dựng dựa trên chúng.

Cuối cùng là có bạn muốn biết thêm về nó, bạn có thể kiểm tra các chi tiết trong liên kết theo dõi.


Nội dung bài viết tuân thủ các nguyên tắc của chúng tôi về đạo đức biên tập. Để báo lỗi, hãy nhấp vào đây.

Hãy là người đầu tiên nhận xét

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố.

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.