Lỗ hổng CVE-2026-12094 trên plugin Advanced Contact Form 7 - Compact DB cho phép kẻ tấn công không cần xác thực xóa toàn bộ dữ liệu liên hệ lưu trên website WordPress.
Tổng quan về lỗ hổng bảo mật CVE-2026-12094
Mới đây, một lỗ hổng bảo mật đáng chú ý mang mã hiệu CVE-2026-12094 đã được phát hiện trong plugin WordPress Advanced Contact Form 7 - Compact DB. Lỗ hổng này được công bố chính thức vào ngày 24/06/2026 và được xếp loại mức độ nghiêm trọng MEDIUM (Trung bình) theo thang điểm CVSS.
Lỗi bảo mật xuất phát từ việc thiếu kiểm tra quyền hạn (capability check) và mã xác thực (nonce verification) trong thao tác xử lý yêu cầu AJAX của plugin. Điều này mở ra kịch bản cho phép đối tượng xấu can thiệp trực tiếp vào cơ sở dữ liệu và xóa thông tin trái phép mà không cần đăng nhập vào hệ thống quản trị.
Mức độ ảnh hưởng và đối tượng bị tác động
Lỗ hổng CVE-2026-12094 ảnh hưởng trực tiếp đến các website WordPress đang cài đặt và vận hành plugin Advanced Contact Form 7 - Compact DB từ phiên bản 1.0.0 trở xuống.
- Đối tượng bị ảnh hưởng: Tất cả các quản trị viên website, doanh nghiệp đang sử dụng plugin này để lưu trữ dữ liệu biểu mẫu liên hệ (Contact Form 7) vào cơ sở dữ liệu WordPress.
- Tác động thực tế: Kẻ tấn công có thể xóa toàn bộ các bản ghi phản hồi, thông tin liên hệ từ khách hàng hoặc đối tác gửi qua form. Việc này gây thất thoát dữ liệu quan trọng, gián đoạn quy trình chăm sóc khách hàng và ảnh hưởng tiêu cực đến uy tín của doanh nghiệp.
Bản chất kỹ thuật của lỗ hổng
Theo phân tích chi tiết, hàm cf7cdb_ajax_delete_user() trong plugin đã được đăng ký cho cả hai hành động AJAX là wp_ajax_cf7cdb_delete (dành cho người dùng đã đăng nhập) và wp_ajax_nopriv_cf7cdb_delete (dành cho khách truy cập chưa xác thực).
Trong quá trình xử lý, hàm này thực hiện truy vấn $wpdb->delete() trực tiếp lên bảng wp_cf7cdb_data dựa vào tham số ID do người dùng gửi lên. Tuy nhiên, mã nguồn hoàn toàn không thực hiện:1. Nonce Verification: Không xác thực mã token để chống tấn công CSRF hoặc gửi yêu cầu tự do.
2. Capability Check: Không kiểm tra xem người gửi yêu cầu có quyền quản trị hay không.
3. Ownership Check: Không kiểm tra quyền sở hữu đối với bản ghi dữ liệu.
Chính vì những thiếu sót này, một kẻ tấn công không cần xác thực (unauthenticated attacker) chỉ cần gửi các yêu cầu AJAX liên tục với các ID tăng dần (sequential primary-key IDs) là có thể xóa sạch toàn bộ dữ liệu liên hệ lưu trong cơ sở dữ liệu.
Khuyến nghị khắc phục và hành động cần thiết
Để đảm bảo an toàn cho dữ liệu và hệ thống website, Bitech khuyến nghị các quản trị viên triển khai ngay các giải pháp sau:
- Cập nhật ngay lập tức: Kiểm tra kho plugin WordPress và cập nhật Advanced Contact Form 7 - Compact DB lên phiên bản mới nhất đã được nhà phát triển vá lỗi (phiên bản cao hơn 1.0.0).
- Tạm thời vô hiệu hóa plugin: Trong trường hợp chưa có bản vá chính thức hoặc chưa thể cập nhật ngay, quản trị viên nên tạm thời vô hiệu hóa (deactivate) plugin để ngăn chặn nguy cơ bị khai thác.
- Sao lưu dữ liệu (Backup): Tiến hành sao lưu toàn bộ cơ sở dữ liệu trang web định kỳ để có thể phục hồi kịp thời nếu xảy ra sự cố mất mát dữ liệu.
- Rà soát nhật ký (Logs): Kiểm tra các nhật ký truy cập (access log) đối với các yêu cầu hướng tới
admin-ajax.phpcó chứa hành độngcf7cdb_deleteđể phát hiện các dấu hiệu quét hoặc khai thác bất thường.
Nguồn tham khảo
Quản trị viên và các chuyên gia an ninh mạng có thể tham khảo chi tiết kỹ thuật tại các liên kết sau:
- Cơ sở dữ liệu lỗ hổng quốc gia (NVD): https://nvd.nist.gov/vuln/detail/CVE-2026-12094
- Kho mã nguồn WordPress Trac:
Ngày phát hành: 24/06/2026
Nguồn: NVD — CVE-2026-12094
Tham khảo: https://plugins.trac.wordpress.org/browser/advanced-contact-form-7-compact-db/trunk/cf7cdb.php#L104
Tham khảo: https://plugins.trac.wordpress.org/browser/advanced-contact-form-7-compact-db/trunk/cf7cdb.php#L115
Tham khảo: https://plugins.trac.wordpress.org/browser/advanced-contact-form-7-compact-db/trunk/cf7cdb.php#L120