Wordfence vừa công bố báo cáo lỗ hổng tuần từ 14 đến 20/9/2026, và con số khiến mình phải ngồi dậy thẳng lưng: 358 lỗ hổng trong 243 plugin và 4 theme, chỉ trong 7 ngày. Trong đó có 18 lỗi Critical, gồm cả RCE của ACF Extended PRO và lỗi upload file của Gravity Forms. Mình đã nói nhiều lần và sẽ nói lại: thời đại AI này, khoảng cách giữa lúc lỗ hổng được công bố và lúc bị khai thác chỉ tính bằng giờ, không phải ngày.
Báo cáo tuần 14 đến 20/9/2026 có gì đáng ngại?
Theo Wordfence Intelligence, tuần qua có 358 lỗ hổng được ghi nhận từ 184 nhà nghiên cứu độc lập. Phân theo mức độ: 18 Critical, 74 High, 262 Medium và 4 Low. Điểm sáng duy nhất là 311 lỗi đã có bản vá, còn 47 lỗi vẫn ở trạng thái unpatched — nghĩa là hàng chục plugin đang lộ nền mà chưa có thuốc chữa.
Về loại lỗi, XSS dẫn đầu với 94 trường hợp, theo sau là Missing Authorization với 68 trường hợp. Điều này khớp với trải nghiệm thực tế của mình khi rà soát site khách hàng: phần lớn lỗi nghiêm trọng đều xuất phát từ plugin quên kiểm tra quyền người dùng trước khi xử lý request.
Những plugin nào bị dính lỗi Critical?
Danh sách 18 lỗi Critical tuần này có những cái tên rất phổ biến: ACF Extended PRO dưới hoặc bằng 0.9.2.6 dính RCE không cần đăng nhập qua Dynamic Render Field Type, Gravity Forms dưới hoặc bằng 3.1.0.4 cho upload file tùy ý qua Hidden File Upload Field, JetFormBuilder dưới hoặc bằng 3.6.2 dính leo thang đặc quyền, cùng các lỗi file upload của DS Ad Rotator, authentication bypass của Login with QR và RCE của Migratico Lite.
Đáng chú ý nhất phải kể đến Admin Menu Editor Pro 2.35 đến 2.36 bị cài backdoor trực tiếp — đây không phải lỗi code mà là phần mềm bị gieo độc, kiểu tấn công supply chain từng khiến Smart Slider 3 Pro toxinfest cách đây vài tháng. Nếu bạn đang chạy bản Pro tự tải từ nguồn không chính thức thì rủi ro còn cao hơn cả lỗ hổng thường.
Làm sao kiểm tra site có nằm trong danh sách không?
Bạn cần đối chiếu từng plugin trong danh sách trên với phiên bản đang chạy. Mình làm việc này bằng WP-CLI cho nhanh, chạy trực tiếp trên server:
sudo -u www-data wp plugin list --path=/var/www/example.com/public_html \
--fields=name,version,update_version --format=tableNếu muốn lọc nhanh nhóm plugin.forms đang chạy bản cũ hơn bản vá an toàn, dùng thêm grep:
sudo -u www-data wp plugin list --path=/var/www/example.com/public_html \
--fields=name,version,update_version | grep -iE "gravity|acf|jetform|migratico|ds-ad"Ba dòng lệnh trên cho bạn biết chính xác plugin nào đã cũ. Nếu thấy tên trùng danh sách ở trên, ưu tiên xử lý theo thứ tự: lỗi RCE và upload file trước, authentication bypass tiếp theo, các lỗi còn lại sau đó.
Cách vá an toàn từng bước ra sao?
Mình luôn vá theo quy trình bốn bước để tránh hỏng site production. Bước một, backup toàn bộ file và database:
wp db export --path=/var/www/example.com/public_html backup-$(date +%F).sql
tar -czf backup-files-$(date +%F).tar.gz /var/www/example.com/public_htmlBước hai, cập nhật plugin dính lỗi lên bản vá:
sudo -u www-data wp plugin update gravityforms jetformbuilder \
--path=/var/www/example.com/public_htmlBước ba, nếu plugin nằm trong nhóm 47 lỗi unpatched, vô hiệu hóa ngay thay vì chờ:
sudo -u www-data wp plugin deactivate ten-plugin \
--path=/var/www/example.com/public_htmlBước bốn, smoke test 10 phút: vào trang chủ, nộp một form liên hệ, tải một trang admin. Quy trình này mình đã áp dụng trong runbook rà soát 277 lỗ hổng đầu tháng 9 và nó chưa từng khiến mình hối hận.
Rà dấu vết tấn công sau khi vá bằng cách nào?
Vá xong chưa phải là xong. Với lỗi upload file và RCE, kẻ tấn công có thể đã cài webshell trước đó. Mình quét ba dấu hiệu chính bằng lệnh:
# File PHP sửa đổi trong 14 ngày qua
find /var/www/example.com/public_html/wp-content -name "*.php" -mtime -14
# Tài khoản admin lạ
sudo -u www-data wp user list --path=/var/www/example.com/public_html \
--role=administrator --fields=ID,user_login,user_registered
# Cron event đáng ngờ
sudo -u www-data wp cron event list --path=/var/www/example.com/public_htmlBa lệnh này chiếm chưa đến 2 phút nhưng phát hiện được phần lớn hậu quả. Nếu bạn từng dính lỗi upload của Gravity Forms, đọc thêm hướng dẫn kiểm tra chi tiết mình viết hồi cuối tháng 8, quy trình rà dấu vết gần như giống hệt.
Làm gì để không phải dọn rác mỗi tuần?
Số liệu của 20i từng cho thấy 88% site WordPress toàn cầu chạy bản cũ, và báo cáo tuần này của Wordfence là hệ quả trực tiếp. Thói quen của mình rất đơn giản: bật auto-update cho minor của plugin ít quan trọng, kiểm tra thủ công mỗi thứ Sáu cho plugin tiếp xúc trực tiếp người dùng như form, checkout, đăng nhập. Chiến lược quản lý update dài hạn mình đã chia sẻ trong bài phân tích báo cáo 20i, bạn nên đọc để xây quy trình riêng.
Nhìn 358 lỗ hổng một tuần, dễ thấy công việc bảo mật website không còn là việc làm một lần mà là thói quen tuần. Dành 15 phút mỗi thứ Sáu, chạy ba nhóm lệnh ở trên, bạn đã đi trước 88% site WordPress còn lại. Và nếu quản lý nhiều site, hãy cân nhắc dùng vulnerability database có API như Wordfence Intelligence để tự động cảnh báo thay vì chờ đọc báo cáo.