Một lỗ hổng mới trong mã nguồn WordPress Core cho phép khách truy cập ẩn danh để lại bình luận chứa một mã thực thi (script) ẩn trên trang. Nếu một quản trị viên đang đăng nhập mở trang đó sau đó, mã thực thi này có thể chạy các đoạn mã nguy hiểm trên máy chủ của trang web.
WordPress đã khắc phục lỗ hổng này, được theo dõi dưới mã danh CVE-2026-93485 và được đặt tên là "Comment2Shell", vào ngày 17 tháng 9 trong phiên bản 7.1.1. Các chủ sở hữu trang web được khuyến cáo 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 thực tế và nó cũng không nằm trong danh sách các lỗ hổng phần mềm đang bị khai thác tích cực của chính phủ Hoa Kỳ.
Patchstack, công ty đã gán mã định danh này, xếp hạng lỗ hổng ở mức 7.1 trên 10 theo thang điểm CVSS.
WordPress thường kiểm tra bình luận để tìm các thẻ HTML nguy hiểm khi nó được lưu, sau đó định dạng lại khi trang được hiển thị. Lỗ hổng này nằm ở khoảng trống giữa hai bước đó.
Rafie Muhammad, nhà nghiên cứu bảo mật đã báo cáo lỗi này, đã trình bày chi tiết chuỗi tấn công trong một bài phân tích vào ngày 21 tháng 9. Thủ thuật là sử dụng một ký tự xuống dòng đặt bên trong thuộc tính của một thẻ HTML được cho phép trong phần bình luận.
Khi WordPress định dạng lại bình luận để hiển thị, một trong các bước xử lý đã làm vỡ thẻ đó và đưa văn bản của kẻ tấn công vào vị trí mà trình duyệt coi là một trình xử lý sự kiện (event handler) đang hoạt động. Trình xử lý này sẽ tự động chạy khi trang được tải mà không yêu cầu người dùng phải nhấp chuột.
Mã thực thi này sẽ chạy trong trình duyệt của bất kỳ ai mở trang, bất kể họ có đăng nhập hay không, và nó hoạt động với cấp độ quyền truy cập của người đó trên trang web.
Việc thực thi mã trên máy chủ cần thêm một điều kiện nữa: Một quản trị viên đã đăng nhập phải mở trang có chứa bình luận đó.
Mã thực thi sau đó có thể sử dụng chính phiên làm việc (session) của quản trị viên để tải lên một plugin chứa web shell — một tệp nhỏ thực thi bất kỳ lệnh nào mà kẻ tấn công gửi tới. Việc tải lên plugin theo cách này là một con đường phổ biến để đi từ trình duyệt của quản trị viên đến việc kiểm soát máy chủ.
Cuộc tấn công cũng phụ thuộc vào cách một trang web hiển thị bình luận. Nó hoạt động trên các trang web sử dụng block theme, hoặc classic theme định dạng bình luận theo cùng một cách.
Để điều này xảy ra, bình luận trước tiên phải xuất hiện trên trang. WordPress mô tả lỗ hổng này chỉ có thể khai thác được "tùy thuộc vào việc phê duyệt bình luận."
Tuy nhiên, tính năng kiểm duyệt bình luận bị tắt theo mặc định và cài đặt giữ lại bình luận của người mới có thể bị vượt qua, vì vậy một bình luận có thể xuất hiện trên trang mà không cần ai phê duyệt. Như Patchstack đã nhận định: "kiểm duyệt không phải là một biện pháp kiểm soát bảo mật."
Cần phải làm gì?
Hãy cập nhật lên WordPress 7.1.1, hoặc phiên bản mới nhất trong nhánh của bạn nếu nó vẫn nhận được các bản vá bảo mật. Các phiên bản bị ảnh hưởng trải dài từ 4.7 đến 7.1. Dưới đây là các phiên bản đã được khắc phục cho các nhánh hiện tại:
- WordPress 7.1: cập nhật lên 7.1.1
- WordPress 7.0: cập nhật lên 7.0.5
- WordPress 6.9: cập nhật lên 6.9.8
- Các nhánh cũ hơn, từ 4.7: cài đặt bản phát hành đã sửa lỗi cho nhánh của bạn (từ 4.7.36 trở lên).
Một trang web không thể cập nhật ngay lập tức có thể ngăn chặn đường tấn công bằng cách đóng tính năng bình luận trên các bài viết hoặc tắt bình luận trên toàn bộ trang web. Ngoài ra, tường lửa ứng dụng web (WAF) hoặc plugin bảo mật cũng có thể chặn được các bình luận được thiết kế độc hại này.
Cập nhật sẽ khắc phục lỗ hổng, nhưng nó không hoàn tác bất kỳ thay đổi nào mà kẻ tấn công đã thực hiện trước đó. Nếu một trang web có lý do để nghi ngờ mình bị nhắm mục tiêu, họ nên kiểm tra các plugin hoặc tệp lạ không xác định.
Các lỗ hổng bảo mật khác
WordPress 7.1.1 đã khắc phục tổng cộng 11 vấn đề bảo mật. Lỗ hổng bình luận này là lỗ hổng duy nhất mà kẻ tấn công không cần tài khoản vẫn có thể truy cập được, hầu hết các lỗ hổng khác đều yêu cầu người dùng đã đăng nhập với một mức quyền nhất định.
Cùng một bản phát hành này cũng đã sửa một lỗ hổng thứ hai mang tên Click2Shell. Trong đó, một liên kết được thiết kế đặc biệt có thể khiến WordPress cài đặt một theme và thực thi mã trên máy chủ. Lỗ hổng này cũng yêu cầu một quản trị viên đã đăng nhập mở liên kết.
Mã nguồn WordPress Core đã gặp nhiều lỗ hổng nghiêm trọng khác trong năm nay. Vào tháng 7, một lỗi có tên wp2shell đã cho phép kẻ tấn công chạy mã mà không cần đăng nhập, và sau đó đã được các cơ quan chức năng Hoa Kỳ liệt kê vào danh sách các lỗ hổng bị khai thác trong thực tế.
Vào tháng 8, các nhà nghiên cứu đã khai thác một lỗ hổng kịch bản trong trang đăng nhập để thực thi mã với tư cách quản trị viên. Đây là những lỗ hổng tách biệt với lỗi bình luận hiện tại.