Lỗ hổng WordPress Click2Shell mới ép buộc cài đặt Theme, có thể dẫn đến thực thi mã từ xa

WordPress vừa phát hành bản vá cho lỗ hổng Click2Shell trong phần mềm cốt lõi, cho phép kẻ tấn công ép buộc quản trị viên cài đặt các theme từ thư mục chính thức mà không cần sự đồng ý, từ đó có thể dẫn đến thực thi mã từ xa (RCE).
Minh họa lỗ hổng Click2Shell trong WordPress
Lỗ hổng Click2Shell cho phép ép buộc cài đặt theme từ xa

WordPress hôm nay đã phát hành các bản vá để khắc phục một loạt lỗ hổng mới trong phần mềm cốt lõi (core software), một trong số đó có thể cho phép một liên kết web được tạo thủ công, khi được mở bởi một quản trị viên đã đăng nhập, sẽ tự động cài đặt một theme từ thư mục chính thức của WordPress.org mà không cần bất kỳ ai nhấp vào nút "Cài đặt".

Công ty bảo mật pwn.ai, nơi các nhà nghiên cứu đã báo cáo lỗi này, gọi chuỗi tấn công là Click2Shell. Bản thân lỗi này chỉ cài đặt một theme thực tế do kẻ tấn công chọn, nhưng nhóm nghiên cứu bảo mật đã chỉ ra rằng nó có thể kết hợp với một điểm yếu riêng biệt trong theme để thực thi mã của kẻ tấn công trên máy chủ.

Bản vá đã được phát hành vào ngày 17 tháng 9 trong phiên bản WordPress 7.1.1. Vì đây là một bản phát hành bảo mật, WordPress khuyến nghị người dùng nên cập nhật ngay lập tức. Hiện chưa có dấu hiệu cho thấy lỗ hổng này bị khai thác trong các cuộc tấn công thực tế.

Theme được cài đặt sẽ ở trạng thái không hoạt động, vì vậy giao diện của trang web không thay đổi và không có gì bất thường. Để đạt được mục đích thực thi mã, cần có một lỗi thứ hai, riêng biệt nằm trong theme đã được cài đặt. Như pwn.ai đã viết về lỗi cốt lõi:

"Lỗi Core tự thân nó không chấp nhận một tệp theme ZIP tùy ý."

Cơ chế hoạt động của Click2Shell

Lỗ hổng này tồn tại vì hai thành phần của WordPress đọc cùng một liên kết theo những cách khác nhau. Thư mục WordPress.org coi giá trị trong liên kết là tên theme thông thường và trả về một theme thực, nhưng trình duyệt của quản trị viên lại sử dụng lại văn bản gốc, bao gồm cả các dấu câu, bên trong mã được thiết kế để chọn một mục trên trang. Các ký tự mà kẻ tấn công thêm vào liên kết sẽ điều hướng mã đó đến nút Cài đặt, và script của chính WordPress sẽ thực hiện lệnh nhấp chuột.

Vì quản trị viên đã đăng nhập, phiên làm việc của họ sẽ cung cấp quyền và token bảo mật cần thiết cho việc cài đặt, do đó kẻ tấn công không cần phải cung cấp các yếu tố này.

Một theme đã cài đặt không phải lúc nào cũng ở trạng thái "ngủ". Khi WordPress xây dựng bản xem trước (preview) trong công cụ Customizer, nó có thể tải mã PHP của theme ngay cả trước khi theme đó được kích hoạt.

Chuỗi tấn công dẫn đến thực thi mã từ xa (RCE)

Theme mà pwn.ai sử dụng làm ví dụ, Mobile Repair Zone, chứa một lỗi thứ hai: một trình xử lý nền (background handler) thực hiện lấy địa chỉ web từ yêu cầu, tải xuống một gói tin và chạy mã của nó mà không kiểm tra quyền của khách truy cập hoặc token bảo mật. Khi được liên kết sau quá trình ép buộc cài đặt, trình xử lý đó sẽ thực thi mã của kẻ tấn công trên máy chủ.

Sơ đồ chuỗi tấn công Click2Shell
Sơ đồ minh họa chuỗi tấn công từ cài đặt theme đến thực thi mã từ xa

Các nhà nghiên cứu đánh giá lỗ hổng ép buộc cài đặt theme ở mức độ nghiêm trọng cao (High), với điểm CVSS là 7.1, và toàn bộ chuỗi dẫn đến thực thi mã được xếp vào mức nghiêm trọng (Critical), đạt 9.6. WordPress chưa công bố đánh giá mức độ nghiêm trọng riêng và mô tả vấn đề này là: "Các URL được tạo đặc biệt có thể tự động cài đặt và xem trước một theme không hoạt động từ WordPress.org." Hiện vẫn chưa có mã định danh CVE nào được chỉ định, mặc dù pwn.ai cho biết WordPress có kế hoạch bổ sung.

Khuyến nghị và các lỗ hổng liên quan

WordPress đã khắc phục lỗ hổng trong bản 7.1.1, thuộc bản phát hành bảo mật có phạm vi hỗ trợ ngược lại đến phiên bản 4.7. Các ghi chú xác nhận lỗ hổng này ảnh hưởng từ phiên bản 6.0 đến các bản phát hành ngay trước bản vá. Chủ sở hữu trang web nên cài đặt bản 7.1.1 hoặc bản cập nhật tương ứng cho nhánh họ đang sử dụng; các trang web được thiết lập cập nhật tự động sẽ tự nhận được bản vá.

Nếu bạn không thể cập nhật ngay, hãy lưu ý rằng cả WordPress và pwn.ai đều không đưa ra biện pháp khắc phục tạm thời (workaround) nào khác, và cuộc tấn công vẫn cần một quản trị viên đã đăng nhập mở liên kết của kẻ tấn công. Việc cập nhật WordPress core sẽ đóng lại hướng tấn công này bất kể trang web đang chạy theme nào.

Click2Shell không phải là lỗi WordPress core đầu tiên mà công ty này tìm thấy trong những tuần gần đây. Vào tháng 8, WordPress đã sửa một lỗi XSS tương tự do pwn.ai phát hiện ở màn hình đăng nhập, cũng có thể dẫn đến thực thi mã. Một lỗ hổng WordPress core khác được tiết lộ vào tháng 7 mang tên wp2shell không liên quan đến nghiên cứu của pwn.ai; lỗ hổng đó không cần đăng nhập hay nhấp chuột và đã được CISA liệt kê là đang bị khai thác trong thực tế.