Các nhà nghiên cứu đã phát hiện ra một lỗ hổng thực thi mã từ xa trong framework  Electron phổ biến mà có thể cho phép kẻ tấn công thực thi mã độc trên máy tính của nạn nhân.

Electron là một framework phát triển ứng dụng mã nguồn mở, hỗ trợ hàng nghìn ứng dụng máy tính để bàn được sử dụng rộng rãi bao gồm WhatsApp, Skype, Signal, WordPress, Slack, GitHub Desktop, Atom, Visual Studio Code và Discord.

Bên cạnh các mô-đun riêng, framework Electron cũng cho phép các nhà phát triển tạo ra những ứng dụng máy tính để bàn bằng cách tích hợp framework Chromium và Node.js thông qua các API.

Vì Node.js là một framework mạnh mẽ cho các ứng dụng phía máy chủ, việc truy cập vào các API của nó gián tiếp cho phép các ứng dụng dựa trên Electron kiểm soát nhiều hơn đối với hệ điều hành được cài đặt trên máy chủ.

Để ngăn chặn truy cập trái phép hoặc không cần thiết vào các API Node.js, framework Electron theo mặc định đặt giá trị của “webviewTag” thành false trong tệp cấu hình “webPreferences” của nó, sau đó đặt “nodeIngration” thành false.

Tệp cấu hình này với các giá trị mã hóa của một số tham số ở trong framework để ngăn các sửa đổi bằng những chức năng độc hại, tức là bằng cách khai thác lỗ hổng bảo mật như lỗ hổng cross-site scripting (XSS).

Phát hiện lỗ hổng thực thi mã từ xa trong framework Electron

Tuy nhiên, nhà nghiên cứu Brendan Scarvell của Trustwave đã phát hành mã PoC mà những kẻ tấn công có thể chèn vào các ứng dụng mục tiêu không có “webviewTag” được khai báo, thông qua việc khai thác lỗ hổng cross-site scripting để thực thi mã từ xa.

Việc khai thác kích hoạt “nodeIntegration” trong thời gian chạy, cho phép kẻ tấn công lấy quyền kiểm soát trái phép trên máy chủ ứng dụng và thực hiện các lệnh hệ thống tùy ý.

Cần lưu ý rằng việc khai thác sẽ không hoạt động nếu nhà phát triển cũng đã chọn một trong các tùy chọn sau:

  • Tùy chọn nativeWindowOption được bật trong trang webPreferences.
  • Chặn sự kiện cửa sổ mới và ghi đè sự kiện.newGuest mà không cần sử dụng thẻ tùy chọn được cung cấp.

Lỗ hổng thực thi mã từ xa trong framework Electron (CVE-2018-1000136) được báo cáo cho nhóm Electron bởi Scarvell hồi đầu năm nay và gây ảnh hưởng đến tất cả các phiên bản của Electron tại thời điểm phát hiện.

Các nhà phát triển Electron đã vá lỗ hổng này vào tháng 3 năm 2018 cùng với việc phát hành các phiên bản 1.7.13, 1.8.4 và 2.0.0-beta.4.

Vì vậy, các nhà phát triển ứng dụng nên đảm bảo các ứng dụng của họ được vá hoặc ít nhất là không dễ bị tổn thương đối với vấn đề này.

Để biết thêm chi tiết kỹ thuật về lỗ hổng thực thi mã từ xa trong framework Electron và mã khai thác PoC, bạn có thể truy cập vào bài đăng trên blog của Trustwave.

Cũng cần lưu ý rằng lỗi Electron không liên quan đến lỗ hổng được phát hiện trong ứng dụng Signal mà gần đây ứng dụng này đã vá một lỗ hổng cross-site scripting nghiêm trọng dẫn đến việc thực thi mã từ xa.

Bình luận