Một lỗ hổng nghiêm trọng đã được phát hiện trong plugin JetElements For Elementor có thể cho phép kẻ tấn công được xác thực thực thi mã tùy ý trên trang web mục tiêu. Lỗ hổng được gán mã định danh CVE-2023-39157, có điểm CVSS là 9,0, và là một lỗ hổng nghiêm trọng.
JetElements là plugin mở rộng tính năng cho Elementor, cung cấp trên 40 tiện ích (widget) để tạo và quản lý nội dung trang web một cách linh hoạt. Hiện có khoảng 300.000 máy chủ web plugin này trên toàn thế giới đủ thấy mức độ phổ biến của nó.
Lỗ hổng RCE được xác thực này cho phép người dùng, với vai trò tối thiểu là “Người đóng góp”, thực hiện các thực thi hàm PHP tùy ý, dẫn đến một cuộc tấn công thực thi mã mạnh. Rafie Muhammad từ Patchstack đã xác định vấn đề này, trong tay của một kẻ độc hại, có thể cho phép họ chạy các lệnh, thiết lập một cửa hậu và cuối cùng chiếm toàn quyền kiểm soát trang web mục tiêu.
Lỗ hổng nằm trong hàm render_meta của plugin, hàm này thực hiện cuộc gọi đến call_user_func_array hàm tích hợp của PHP, với các tham số đầu vào $callback và $callback_args. Hàm này cho phép bất kỳ hàm nào được cung cấp trong tham số $callback được gọi và $callback_args được truyền dưới dạng đối số của hàm được gọi.
Khi người dùng chọn “Hiển thị Meta” trong cài đặt tiện ích bài đăng, chức năng render_meta sẽ được kích hoạt. Tính năng “Hiển thị meta” cho phép xác định đặc điểm kỹ thuật của khóa meta, nhãn và chức năng gọi lại được sử dụng để chuẩn bị meta. Sự cố xuất hiện khi tham số $callback , có nguồn gốc từ $meta[‘meta_callback’] , không được chọn và người dùng hoàn toàn có thể kiểm soát được. Tương tự, tham số $callback_args cũng do người dùng kiểm soát, bắt nguồn từ biến $value được tạo từ get_post_meta( get_the_ID(), $key, false ) .
Do đó, kịch bản này tạo điều kiện cho một cuộc tấn công RCE tiềm năng. Kẻ tấn công có thể sử dụng hệ thống PHP hoặc hàm shell_exec làm hàm gọi lại, đặt khóa meta thành _elementor_data và sau đó giới thiệu một lệnh OS trong “Label” của tính năng “Hiển thị Meta”. Để kích hoạt RCE, người dùng có đặc quyền phải xuất bản bài đăng đã soạn thảo, khi được truy cập, bài đăng này sẽ kích hoạt khai thác.
May mắn thay, lỗ hổng CVE-2023-39157 đã được xử lý trong JetElements cho Elementor phiên bản 2.6.11. Người dùng nên cập nhật phiên bản mới nhất của plugin càng sớm càng tốt.
Trong thời gian chờ đợi, người dùng có thể giảm thiểu rủi ro khai thác bằng cách tắt plugin JetElements For Elementor. Để thực hiện việc này, hãy điều hướng đến trang Plugin trong bảng điều khiển WordPress và hủy kích hoạt plugin.
Người dùng nên làm theo các đề xuất sau để giúp bảo vệ trang web của họ khỏi các lỗ hổng bảo mật:
- Luôn cập nhật tất cả các plugin và phần mềm.
- Sử dụng plugin bảo mật để quét trang web của bạn để tìm lỗ hổng.
- Triển khai mật khẩu mạnh và xác thực hai yếu tố.
- Sao lưu trang web của bạn thường xuyên.