Cảnh Báo Khẩn: Lỗ Hổng WordPress RCE ‘wp2shell’ Không Cần Xác Thực Đe Dọa Hàng Loạt Website

wp2shell

Một lỗ hổng bảo mật cực kỳ nghiêm trọng có tên wp2shell vừa được các chuyên gia an ninh mạng công bố. Lỗ hổng này ảnh hưởng trực tiếp đến WordPress Core, cho phép kẻ tấn công thực thi mã từ xa (Remote Code Execution – RCE)không cần đăng nhập hoặc xác thực trước.

Theo các nhà nghiên cứu, đây là một trong những lỗ hổng nguy hiểm nhất từng được phát hiện trên WordPress bởi nó không phụ thuộc vào plugin hoặc theme. Chỉ cần website sử dụng phiên bản WordPress bị ảnh hưởng và có thể truy cập từ Internet, tin tặc đã có khả năng khai thác để chiếm quyền kiểm soát hệ thống.

wp2shell là gì?

wp2shell là tên được đặt cho chuỗi khai thác cho phép chuyển từ một lỗi trong REST API của WordPress thành Remote Code Execution (RCE).

Nói một cách đơn giản, hacker có thể gửi các yêu cầu được tạo đặc biệt đến website để khai thác lỗ hổng mà không cần tài khoản quản trị, không cần plugin dễ bị tấn công và cũng không cần bất kỳ quyền truy cập nào trước đó.

Nếu khai thác thành công, kẻ tấn công có thể:

  • Chiếm quyền quản trị website.
  • Tải lên webshell để duy trì quyền truy cập trái phép.
  • Đánh cắp cơ sở dữ liệu và thông tin khách hàng.
  • Cài đặt mã độc hoặc ransomware.
  • Chèn mã độc để chuyển hướng người dùng đến các website lừa đảo.
  • Biến máy chủ thành một phần của mạng botnet để thực hiện các cuộc tấn công khác.

Đây là lý do lỗ hổng này được đánh giá ở mức Critical (Nghiêm trọng).

Bản chất kỹ thuật của chuỗi lỗ hổng wp2shell

wp2shell không phải là một lỗi đứng độc lập, mà là một chuỗi khai thác (exploit chain) tinh vi, kết hợp hoàn hảo từ hai lỗ hổng cốt lõi trong mã nguồn WordPress:

1. Lỗi SQL Injection trong WP_Query (CVE-2026-60137):

  • Lỗi này phát sinh từ cách thức xử lý tham số author__not_in trong lõi WordPress.
  • Khi kẻ tấn công khéo léo truyền vào một chuỗi (string) thay vì một mảng số nguyên theo định dạng chuẩn, cơ chế kiểm duyệt dữ liệu đầu vào của hệ thống đã bị qua mặt.
  • Hậu quả là trực tiếp gây ra lỗi SQL Injection, cho phép can thiệp sâu vào các câu lệnh truy vấn cơ sở dữ liệu ngầm.

2. Lỗi nhầm lẫn định tuyến REST API Batch (CVE-2026-63030):

  • Lỗi này xuất hiện tại endpoint xử lý yêu cầu hàng loạt công khai /wp-json/batch/v1.
  • Sự thiếu đồng bộ trong việc xử lý mảng xác thực và mảng thực thi khi xảy ra lỗi ở các yêu cầu lồng nhau (nested batch requests) đã tạo ra một khoảng trống chết người.
  • Kẻ tấn công lợi dụng điểm yếu này để “đánh lừa” máy chủ, ép hệ thống thực thi các câu lệnh nhạy cảm dưới vỏ bọc của một quyền hạn công khai (public).

Sự kết hợp hoàn hảo của bóng tối: Kẻ tấn công sử dụng endpoint batch/v1 để vượt qua hàng rào kiểm tra quyền (CVE-2026-63030), sau đó dội các đoạn mã độc thông qua cơ chế SQL Injection (CVE-2026-60137). Kết quả là toàn bộ hệ thống bị bẻ gãy, trao quyền điều khiển hoàn toàn máy chủ vào tay hacker.

Phạm vi ảnh hưởng trên diện rộng

Do nằm trực tiếp trong mã nguồn cốt lõi (WordPress Core) thay vì các plugin hay giao diện bên thứ ba, số lượng website tiềm ẩn rủi ro là vô cùng lớn:

Lỗ hổng được theo dõi dưới hai mã CVE:

  • CVE-2026-60137 – Lỗi SQL Injection.
  • CVE-2026-63030 – Chuỗi khai thác dẫn đến Remote Code Execution (RCE).

Theo thông tin từ WordPress:

  • WordPress 6.8 chỉ bị ảnh hưởng bởi lỗi SQL Injection.
  • Chuỗi khai thác RCE đã được vá trong các bản phát hành mới.

Để khắc phục, WordPress đã phát hành:

  • WordPress 7.0.2
  • WordPress 6.9.5
  • WordPress 6.8.6

Đây đều là các bản cập nhật bảo mật quan trọng và cần được cài đặt ngay.

Vì sao quản trị viên cần cập nhật ngay?

Khác với nhiều lỗ hổng trước đây chỉ ảnh hưởng đến một số plugin, wp2shell tồn tại trong WordPress Core, đồng nghĩa với việc phạm vi ảnh hưởng rộng hơn rất nhiều.

Nếu website chưa được cập nhật, hacker có thể:

  • Chiếm toàn bộ website.
  • Xóa hoặc mã hóa dữ liệu.
  • Cài đặt cửa hậu (Backdoor).
  • Thay đổi nội dung website.
  • Đánh cắp tài khoản quản trị.
  • Lây nhiễm mã độc sang các website khác trên cùng máy chủ.

Đây cũng là lý do WordPress đã triển khai cập nhật bảo mật tự động cho nhiều website nhằm giảm thiểu nguy cơ bị khai thác.

Giải pháp và hành động khẩn cấp cho Quản trị viên

Trước tốc độ lan truyền và tính chất phá hoại mạnh mẽ của ‘wp2shell’, các quản trị viên hệ thống, lập trình viên và chủ sở hữu website cần lập tức tiến hành các bước kiểm tra và xử lý sau đây:

1. Nâng cấp WordPress Core ngay lập tức (Khuyến nghị hàng đầu):

Đội ngũ phát triển WordPress đã tung ra các bản vá khẩn cấp. Hãy truy cập ngay bảng điều khiển quản trị và cập nhật lên phiên bản mới nhất tương ứng với nhánh bạn đang dùng:

  • Nâng cấp lên 7.0.2 (nếu đang ở nhánh 7.x).

  • Nâng cấp lên 6.9.5 (nếu đang ở nhánh 6.9.x).

  • Nâng cấp lên 6.8.6 (nếu đang ở nhánh 6.8.x).

Nếu không thể cập nhật trực tiếp từ Dashboard, bạn có thể tải bộ cài WordPress các phiên bản từ trang chính thức của WordPress.org và tham khảo tài liệu thay core tại đây

(Lưu ý: Trên nhiều hệ thống, WordPress đã kích hoạt tính năng tự động cập nhật nền cho các bản vá bảo mật quan trọng này, tuy nhiên bạn vẫn nên chủ động kiểm tra lại).

2. Trong trường hợp chưa thể cập nhật ngay, cần làm gì?

Việc cập nhật WordPress lên phiên bản đã được vá lỗi vẫn là giải pháp tối ưu và được khuyến nghị. Tuy nhiên, nếu vì lý do tương thích hoặc yêu cầu vận hành mà chưa thể nâng cấp ngay, quản trị viên nên triển khai các biện pháp phòng thủ tạm thời để giảm nguy cơ bị khai thác.

Chặn truy cập đến Batch REST API bằng Web Application Firewall (WAF)

Do chuỗi khai thác wp2shell lợi dụng endpoint Batch REST API của WordPress, bạn có thể tạm thời chặn các yêu cầu đến endpoint này trên máy chủ hoặc WAF.

Các endpoint cần chặn:

/wp-json/batch/v1
?rest_route=/batch/v1

Apache (.htaccess)

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-json/batch/v1/?$ [NC,OR]
RewriteCond %{QUERY_STRING} (^|&)rest_route=/batch/v1(&|$) [NC]
RewriteRule ^ - [F,L]

NGINX

location = /wp-json/batch/v1 {
    return 403;
}
if ($query_string ~* "rest_route=/batch/v1") {
    return 403;
}

Cloudflare WAF

Nếu website đang sử dụng Cloudflare, bạn có thể tạo một Custom WAF Rule với điều kiện:

(http.request.uri.path eq "/wp-json/batch/v1")
or
(http.request.uri.query contains "rest_route=/batch/v1")

Sau đó đặt hành động là Block để từ chối các yêu cầu khai thác.

Lưu ý: Đây chỉ là biện pháp giảm thiểu rủi ro trong thời gian ngắn và có thể ảnh hưởng đến một số chức năng sử dụng Batch REST API. Bạn nên gỡ quy tắc này sau khi website đã được cập nhật bản vá chính thức.

3. Kiểm tra website có bị ảnh hưởng hay không

Để xác định website có nằm trong diện bị ảnh hưởng bởi lỗ hổng wp2shell, quản trị viên có thể sử dụng công cụ kiểm tra trực tuyến do nhóm nghiên cứu phát hành.

Kiểm tra tại: https://wp2shell.com/

Sau khi kiểm tra, nếu website được xác định là có nguy cơ bị khai thác, hãy cập nhật WordPress lên phiên bản đã được vá lỗi ngay lập tức và kiểm tra toàn bộ hệ thống để đảm bảo không có dấu hiệu bị xâm nhập.

  • Trong trường hợp chưa thể tiến hành cập nhật ngay lập tức, hãy cấu hình tường lửa ứng dụng web (như Cloudfence, Wordfence, hoặc quy tắc trên Cloudflare) để chặn đứng mọi truy cập ẩn danh nhắm vào đường dẫn REST API batch (/wp-json/batch/v1).

  • Giám sát chặt chẽ các tập lệnh lạ xuất hiện trong thư mục gốc và kiểm tra nhật ký truy cập (access log) của máy chủ để phát hiện sớm các dấu hiệu quét lỗ hổng.

Kết luận

Lỗ hổng wp2shell cho thấy chỉ một điểm yếu trong WordPress hoặc plugin cũng có thể khiến toàn bộ website và máy chủ bị xâm nhập. Vì vậy, quản trị viên không nên chỉ tập trung vào việc cập nhật WordPress mà cần xây dựng một chiến lược bảo mật toàn diện, bao gồm cập nhật phần mềm, triển khai Firewall/WAF, kiểm soát quyền truy cập, giám sát nhật ký hệ thống và sao lưu dữ liệu định kỳ.

Việc chủ động phòng ngừa luôn đơn giản và ít tốn kém hơn rất nhiều so với việc khắc phục hậu quả sau khi website bị tấn công.