Ứng dụng Discord dành cho máy tính để bàn tồn tại lỗ hổng thực thi mã từ xa

20/03/2017
113
356 bài viết
Ứng dụng Discord dành cho máy tính để bàn tồn tại lỗ hổng thực thi mã từ xa
Lỗ hổng trên đã được báo cáo thông qua chương trình trao thưởng bug bounty của ứng dụng này.
discord-small.jpg
Gần đây, ứng dụng nhắn tin Discord đã cập nhật bản vá lỗ hổng nghiêm trọng trong phiên bản máy tính để bàn, có thể bị khai thác để tấn công thực thi mã từ xa (RCE).

Vào cuối tuần trước, người trúng thưởng Masato Kinugawa đã công bố trên blog cá nhân bài viết mô tả chi tiết phương pháp kết hợp khai thác nhiều lỗ hổng để thực hiện tấn công RCE.

Lỗ hổng đầu tiên được tìm thấy trong Electron - khung phần mềm được ứng dụng Discord trên máy tính sử dụng. Mặc dù Discord không dùng mã nguồn mở, nhưng Electron lại sử dụng mã JavaScript - một dự án mã nguồn mở để tạo các ứng dụng đa nền tảng có thể khai thác JavaScript, HTML và CSS – để lưu cục bộ, từ đó có thể bị trích xuất và kiểm tra.
Trong phần cài đặt bản build Electron của ứng dụng Discord, "contextIsolation" được cài đặt là false dẫn đến việc mã JavaScript bên ngoài ứng dụng có thể ảnh hưởng đến mã nội bộ, như hàm Node.js. Tính năng này được thiết kế để giới thiệu các ngữ cảnh riêng biệt giữa các trang web và mã JavaScript.

Nhà nghiên cứu Kinugawa đã tìm được cách thực thi JavaScript trên ứng dụng, dẫn đến việc phát hiện lỗi XSS trong tính năng nhúng iframe, được sử dụng để hiển thị video trong trò chuyện khi đăng một URL, ví dụ link từ nền tảng YouTube.

Điều này giúp Kinugawa tiếp cận được Sketchfab, một trình xem nội dung 3D. Sketchfab nằm trong danh sách whitelist của chính sách bảo mật nội dung Discord và có thể được nhúng vào iframe - nhưng kẻ tấn công có thể khai thác XSS dựa trên cấu trúc DOM trong trang nhúng.

Tuy nhiên, điều này chỉ cho phép chuyên gia này thực thi JavaScript trong iframe và không thể tấn công RCE hoàn toàn trên ứng dụng Discord dành cho máy tính để bàn. Ít nhất, cho đến khi Kinugawa phát hiện cách vượt qua hạn chế trong mã sự kiện "sẽ điều hướng" của Electron.

Lỗi xử lý này, kết hợp với hai lỗ hổng khác, cho phép Kinugawa thực hiện một cuộc tấn công RCE bằng cách phá vỡ các hạn chế điều hướng và sử dụng lỗi iframe XSS để truy cập trang web có payload RCE.

Kinugawa đã báo cáo phát hiện của mình thông qua chương trình Bug Bounty của Discord. Sau khi xác nhận vấn đề, các nhà phát triển Discord đã vô hiệu hóa tính năng nhúng Sketchfab và thêm thuộc tính sandbox vào iframe. Hiện tại, chuyên gia Kinugawa khẳng định lỗ hổng đã được vá và không thể thực hiện tấn công RCE.

Ngoài phần thưởng 5.000 USD từ Discord, Kinugawa cũng nhận được tiền thưởng 300 USD từ nhóm Sketchfab vì phát hiện lỗ hổng XSS. Hiện tại lỗ hổng trên Sketchfab và Electron đều đã được xử lý.

Theo Zdnet
 
Mời các bạn tham gia Group WhiteHat để thảo luận và cập nhật tin tức an ninh mạng hàng ngày.
Lưu ý từ WhiteHat: Kiến thức an ninh mạng để phòng chống, không làm điều xấu. Luật pháp liên quan
Thẻ
discord
Bên trên