Hôm 01/10/2026, một CVE mới vừa được công bố khiến mình phải ngồi dậy xem ngay: CVE-2026-92966, lỗi Unauthenticated Arbitrary Shortcode Execution trong plugin LatePoint (The Appointment Booking Plugin), ảnh hưởng toàn bộ phiên bản từ 5.7.0 trở xuống, điểm CVSS 9.1/10. Ai chưa vá lên 5.7.1 thì đọc ngay hướng dẫn kiểm tra và vá bằng WP-CLI dưới đây của mình.
Lỗi LatePoint CVE-2026-92966 là gì và nguy hiểm ra sao?

Đây là lỗi cho phép kẻ tấn công chưa đăng nhập chèn shortcode tùy ý vào website của bạn. Cụ thể, trong luồng đặt lịch không cần tài khoản, plugin lưu tên khách hàng (first name, last name) mà không kiểm tra kỹ. Sau đó, khi khối Customer Cabinet do hàm render_customer_dashboard() render lại tên đó, WordPress core chạy filter do_shortcode ở priority 11 và thực thi luôn shortcode độc hại nằm trong tên.
Sao shortcode lại nguy hiểm? Vì nếu site bạn cài thêm plugin có shortcode gọi hàm nhạy cảm (như tạo form, chạy truy vấn, tải file), attacker có thể xâu chuỗi thành RCE — chạy lệnh trên server. CVSS 9.1 và không cần xác thực là combo rất xấu.
Cách hoạt động của cuộc tấn công như thế nào?
Mình tách ra 3 bước để bạn dễ hình dung:
- Gieo payload: attacker gửi một booking request bình thường qua form đặt lịch, nhưng điền trường tên chứa payload shortcode, ví dụ dạng
[plugin_x action="evil"]. - Lưu trữ: LatePoint lưu giá trị này vào bảng customer của plugin, thuộc hàm
customer_model.php, không hề sanitize dưới dạng shortcode. - Kích hoạt: khi trang chứa khối Customer Cabinet được xem,
dashboard.phpin tên khách ra, filterdo_shortcodecủa WordPress quét qua và thực thi payload. Toàn bộ chuỗi này không cần một tài khoản nào cả.
Điểm đáng lưu ý: chính hành vi “re-parse nội dung người dùng như nội dung post” là gốc rễ vấn đề, chứ không phải một hàm duy nhất. Đó là lý do bản vá 5.7.1 phải chỉnh lại cả blocks_helper.php.
Cách kiểm tra site có đang dùng LatePoint không?
Bạn SSH vào server và chạy lệnh WP-CLI sau:
sudo -u www-data wp plugin list --path=/var/www/thienlv.com/public_html | grep latepoint
Có output nghĩa là đang cài. Kiểm tra phiên bản:
sudo -u www-data wp plugin get latepoint --path=/var/www/thienlv.com/public_html | grep version
Nếu phiên bản ≤ 5.7.0 thì site bạn nằm trong vùng ảnh hưởng. Nếu không có kết quả gì thì yên tâm, bạn không dính lỗi này — nhưng vẫn nên đọc phần rà dấu vết vì attacker có thể đã cài rồi gỡ.
Cách vá lỗi LatePoint CVE-2026-92966 ra sao?
Đơn giản nhất là nâng lên 5.7.1. Khuyến nghị của mình luôn là update khi có bản vá bảo mật, đừng chờ:
sudo -u www-data wp plugin update latepoint --path=/var/www/thienlv.com/public_html
sudo -u www-data wp plugin verify-checksums latepoint --path=/var/www/thienlv.com/public_html
Nếu bạn không dùng khối Customer Cabinet, hãy cân nhắc tắt hẳn tính năng này đi như lớp phòng thủ thứ hai. Với multisite hoặc hosting chặn WP-CLI, bạn cập nhật thủ công qua Dashboard → Plugins, nhưng nhớ sao lưu trước — database lẫn thư mục wp-content.
Rà dấu vết tấn công bằng WP-CLI làm sao cho đúng?
Vì payload nằm trong trường tên khách hàng, mình đề nghị truy vấn trực tiếp bảng customer của LatePoint:
sudo -u www-data wp db query \
"SELECT id, first_name, last_name, created_at FROM wp_latepoint_customers \
WHERE first_name LIKE '%[%' OR last_name LIKE '%[%' ESCAPE '!' \
AND created_at > '2026-08-01';" \
--path=/var/www/thienlv.com/public_html
Bất kỳ dòng nào trả về có ký tự [ trong tên là dấu hiệu giem payload. Tiếp đó, kiểm tra file lạ và tài khoản admin mới:
sudo -u www-data wp user list --role=administrator --path=/var/www/thienlv.com/public_html
find /var/www/thienlv.com/public_html/wp-content/uploads -name "*.php" -mtime -60
Ngoài ra soi access log các POST tới wp-json/latepoint hoặc admin-ajax.php với action=latepoint trong 60 ngày qua. Nếu thấy dấu hiệu bất thường, đổi mật khẩu database, salt trong wp-config.php và quét malware toàn diện như runbook mình từng chia trong bài rà soát WordPress sau loạt lỗ hổng bảo mật bằng WP-CLI.
Bài học lớn hơn từ lỗi shortcode này là gì?
Nguyên tắc vàng mà developer nào cũng thuộc nhưng hay quên: đừng bao giờ đưa dữ liệu người dùng đi qua do_shortcode. Shortcode là ngôn ngữ thực thi, không phải plain text. Nếu bắt buộc phải render, hãy escape với do_shortcode chỉ trên nội dung tin cậy, hoặc dùng wp_kses whitelist trước.
Với người quản trị site, bài học là plugin booking form chính là cửa ngõ input công khai — chính nơi attacker không cần đăng nhập vẫn chạm tới database của bạn. Hãy rà danh sách plugin có form công khai định kỳ, và nếu bạn đang yếu tâm huyết sau loạt CVE suốt tháng 9, tham khảo thêm bản cập nhật bảo mật WordPress 7.1.1 để cập nhật core song song với plugin.
Kết luận: việc cần làm ngay hôm nay
Tóm lại trong 5 phút: kiểm tra wp plugin list | grep latepoint, nếu có thì nâng lên 5.7.1, rồi truy vấn bảng customer tìm ký tự [ trong trường tên. CVE-2026-92966 chưa thấy có exploit công khai nhưng các lỗi shortcode leo thang thành RCE thường bị săn rất nhanh sau khi công bố — đừng để site mình thành nạn nhân tiếp theo.