Gần đây nhất, 2 plugin InfiniteWP Client và WP Time Capsule cũng chứa các vấn đề logic trong mã nguồn cho phép hacker đăng nhập vào tài khoản quản trị viên mà không cần mật khẩu.
2 plugins InfiniteWP Client và WP Time Capsule được phát hiện chứa lỗi bảo mật vô cùng nghiêm trọng
Gần đây, một lỗ hổng bỏ qua xác thực trong Addons Ultimate đã được phát hiện trên các plugin Elementor và Beaver Builder.
Lần này, các nhà nghiên cứu đã tìm ra rằng plugin InfiniteWP Client và WP Time Capsule cũng có các vấn đề logic trong mã nguồn, cho phép hacker đăng nhập vào tài khoản quản trị viên mà không cần mật khẩu.
Các nhà phát triển plugin đã nhanh chóng kiểm tra và phát hành các bản vá vào ngày hôm sau. Thật đáng khen ngợi khi thấy các nhà phát triển hành động nhanh chóng và thông báo cho khách hàng về các vấn đề, giúp mọi người cập nhật lên phiên bản an toàn hơn sớm nhất có thể.
Tường lửa có thể bị vô hiệu hóa
Vì các lỗ hổng bỏ qua xác thực thường là các lỗi logic trong mã nguồn và không thực sự liên quan đến tải trọng đáng ngờ, nên rất khó tìm và xác định nguồn gốc của các vấn đề này.
Trong trường hợp này, việc chặn lỗ hổng này bằng các quy tắc tường lửa chung là khó khăn, vì tải trọng được mã hóa và tải trọng độc hại không khác nhiều so với tải trọng hợp pháp của cả hai plugin.
Các nhà nghiên cứu đã thêm một module mới vào tường lửa WebARX để chặn lỗ hổng này, vì cả hai plugin không kết nối với core WordPress như mong đợi. Tính năng mới này có thể được phát triển thêm trong tương lai để xử lý các vấn đề tương tự.
Do bản chất của lỗ hổng bảo mật, tường lửa dựa trên đám mây có thể không phân biệt được giữa lưu lượng truy cập độc hại và hợp pháp, do đó có thể không cung cấp sự bảo vệ hiệu quả chống lại lỗ hổng này.
Những ai sử dụng tường lửa của công ty khác nên hỏi xem tường lửa của họ có chặn được các lỗ hổng cụ thể này hay không.
Plugin InfiniteWP Client
Các phiên bản của plugin InfiniteWP Client dưới 1.9.4.5 đều bị ảnh hưởng bởi lỗ hổng này.
Mô tả cuộc tấn công: Đầu tiên, yêu cầu một tải trọng được mã hóa bằng JSON, sau đó là Base64. Tiếp theo, tải trọng này được gửi thô đến trang web mục tiêu thông qua một yêu cầu POST.
Chỉ cần biết tên người dùng của quản trị viên trên trang web. Sau khi yêu cầu được gửi, bạn sẽ tự động đăng nhập với tư cách người dùng đó.
Vấn đề nằm trong hàm iwp_mmb_set_Vquest trong tệp init.php. Hàm này kiểm tra xem biến request_params của lớp IWP_MMB_Core có trống hay không, và biến này chỉ được điền khi tải trọng đáp ứng một số điều kiện nhất định.
Trong trường hợp này, điều kiện là tham số iwp_action của tải trọng phải bằng readd_site hoặc add_site, vì đây là các hành động duy nhất không có kiểm tra ủy quyền tại chỗ. Việc thiếu kiểm tra ủy quyền là lý do khiến vấn đề này tồn tại.
Khi tải trọng đáp ứng điều kiện này, tham số tên người dùng được cung cấp sẽ được sử dụng để đăng nhập người yêu cầu với tư cách người dùng đó mà không thực hiện bất kỳ xác thực nào khác.
Như bạn có thể thấy, thay đổi duy nhất họ đã thực hiện là các hành động add_site và readd_site sẽ không còn tạo ra biến request_params mà sẽ quay lại sớm trong hàm.
Dựa trên thư viện plugin WordPress, plugin InfiniteWP Client đang hoạt động trên 300.000 trang web. Trang web InfiniteWP tuyên bố họ có 513.520 trang web đang hoạt động.
Plugin WP Time Capsule
Đối với WP Time Capsule, các phiên bản dưới 1.21.16 dễ bị tấn công.
Plugin WP Time Capsule không yêu cầu tải trọng phức tạp; chỉ cần chứa một chuỗi cụ thể trong phần thân của yêu cầu POST.
Vấn đề nằm ở dòng 12 của tệp wptc-cron-tests.php, nơi phân tích yêu cầu. Hàm parse_Vquest gọi hàm decode_server_Vquest_wptc để kiểm tra xem tải trọng POST có chứa chuỗi IWP_JSON_PREFIX hay không.
Nếu chuỗi này có mặt, hàm wptc_login_as_admin sẽ được gọi, lấy tất cả các tài khoản quản trị viên có sẵn và sử dụng tài khoản đầu tiên trong danh sách. Kẻ tấn công sẽ đăng nhập với quyền quản trị viên như vậy.
Nhà phát triển đã khắc phục vấn đề bằng cách phát hành bản vá mới, loại bỏ một số yêu cầu gọi đến hàm wptc_login_as_admin, và thực hiện thay đổi để xác minh tính hợp lệ của tải trọng trước khi tiếp tục xử lý.
Theo thư viện plugin WordPress, plugin WP Time Capsule đang hoạt động trên hơn 20.000 trang web.