Hôm nay mình đọc báo cáo của Wordfence về một lỗ hổng khá đáng sợ: plugin TranslatePress, đang chạy trên hơn 400.000 site WordPress, bị dính lỗi CVE-2026-78267 với điểm CVSS 9.8. Đáng nói là kẻ tấn công không cần đăng nhập, vẫn có thể lấy được link đặt lại mật khẩu của admin, đổi mật khẩu rồi đăng nhập thẳng vào dashboard. Nếu site bạn đang dùng plugin dịch này, hãy dừng lại 5 phút và kiểm tra ngay, vì toàn bộ quá trình vá chỉ mất chưa đến 10 phút.
TranslatePress bị lỗi gì và nghiêm trọng đến mức nào?

Đây là lỗi Unauthenticated Account Takeover, phân loại CWE-266 (gán quyền không đúng cách). TranslatePress vốn là plugin tạo site đa ngôn ngữ, hoạt động ngay trên front-end nên đoạn code lỗi hoàn toàn có thể bị kích hoạt từ bên ngoài qua các request crafted. Kết quả: người lạ chiếm được tài khoản admin, và từ đó chiếm trọn site của bạn. Wordfence ghi nhận lỗi ảnh hưởng đến bản 3.3.1 trở về trước, được vá từ bản 3.3.2, nhưng mình khuyên cứ lên 3.3.3 trở lên cho chắc.
Lỗi này hoạt động theo cơ chế nào?
Cách tấn công rất đơn giản về mặt kỹ thuật. Plugin xử lý đầu vào từ người dùng mà không kiểm tra quyền hợp lệ, nên kẻ tấn công gửi request đặc biệt để khai thác luồng đặt lại mật khẩu (password reset). Bình thường, link reset chỉ được gửi tới email của admin, nhưng với lỗi này, kẻ tấn công có thể chặn và lấy được link đó, đặt mật khẩu mới rồi đăng nhập với vai trò quản trị. Toàn bộ diễn ra mà không cần bất kỳ thông tin đăng nhập nào — đây chính là lý do điểm CVSS được chấm 9.8, mức Critical
Cách kiểm tra site có đang dùng TranslatePress không?
Nhanh nhất là dùng WP-CLI. Bạn SSH vào server rồi chạy:
sudo -u www-data wp plugin list --path=/var/www/thienlv.com/public_html | grep translatepressNếu có dòng hiện ra, xem cột version ngay bên cạnh. Còn nếu bạn quản lý nhiều site khách hàng, mình thường quét hàng loạt bằng lệnh tìm thư mục plugin:
find /var/www -maxdepth 4 -type d -name "translatepress" 2>/dev/nullCách này phát hiện cả những bản TranslatePress đã bị deactivate nhưng còn nằm lại trên host — chỗ hay bị bỏ quên mà mình vẫn gặp liên tục khi dọn dẹp cho khách.
Cách cập nhật TranslatePress an toàn trong 5 phút?
Mình luôn cập nhật theo đúng quy trình thay vì bấm nút Update ngay trong dashboard lúc site đang nhiều traffic. Quy trình gồm 4 bước:
Bước 1 — Backup: chụp lại database và thư mục wp-content trước khi đụng vào bất cứ thứ gì:
wp db export backup-$(date +%F).sql --path=/var/www/thienlv.com/public_html
tar -czf backup-wpcontent-$(date +%F).tar.gz /var/www/thienlv.com/public_html/wp-contentBước 2 — Cập nhật plugin:
sudo -u www-data wp plugin update translatepress --path=/var/www/thienlv.com/public_htmlBước 3 — Xác nhận phiên bản: chạy lại lệnh kiểm tra ở trên, đảm bảo version từ 3.3.3 trở lên.
Bước 4 — Smoke test: vào một trang bất kỳ, bật giao diện dịch của TranslatePress, thử chuyển ngôn ngữ và soạn nội dung dịch mới. Nếu site chỉ cần tiếng Việt, mình nghiêng về việc deactivate và xóa hẳn plugin để giảm bề mặt tấn công.
Site đã chạy lâu thì rà soát dấu vết tấn công ra sao?
Nếu TranslatePress trên site bạn từng ở bản lỗi trong vài tuần qua, đừng chỉ vá xong rồi thôi. Mình rà theo ba nơi. Thứ nhất, vào Users kiểm tra tài khoản admin lạ và ngày đổi mật khẩu gần nhất. Thứ hai, xem log truy cập tìm các request bất thường chứa tham số của TranslatePress:
grep -i "trp_" /var/log/nginx/access.log | grep -vE "(googlebot|bingbot)" | tail -50Thứ ba, kiểm tra mật khẩu Application Passwords và user mới tạo trong bảng wp_users. Nếu phát hiện dấu hiệu bất thường, đổi mật khẩu toàn bộ admin, force logout toàn bộ session (nút “Log Out Everywhere Else” trong Profile) và quét mã độc. Chủ động phòng thủ từ phía hosting như mình chia sẻ trong bài hướng dẫn kiểm tra secure WordPress hosting cũng rất đáng để đọc thêm.
Làm sao để không bị dính các lỗi plugin tương tự?
Thực tế là mỗi tuần đều có plugin phổ biến dính CVSS 9.x — mới đây mình đã viết về CVE-2026-19598 của Pods và lỗi RCE của Elementor Pro. Ba thói quen của mình: bật auto-update cho plugin quan trọng nhưng có staging test trước, đăng ký email cảnh báo của Wordfence, và dùng WAF cấp hosting hoặc dịch vụ như Patchstack để được virtual patching trước khi bản vá chính thức kịp tới. Firewall rule cho lỗi TranslatePress đã có cho user Wordfence trả phí từ 13/8, còn bản miễn phí phải chờ tới 12/9 — khoảng trống 30 ngày này chính là lý do bạn không nên trông chờ hoàn toàn vào tầng miễn phí.
Kết luận: hành động ngay hôm nay
Tóm lại, CVE-2026-78267 của TranslatePress là kiểu lỗi mà mình e ngại nhất: không cần xác thực, khai thác từ xa, hậu quả là mất toàn quyền admin trên 400.000 site tiềm năng. Việc của bạn rất gọn: kiểm tra phiên bản, cập nhật lên 3.3.3 trở lên, rà log nếu đã chạy bản cũ lâu ngày. Nếu bạn quản lý nhiều site, hãy coi đây là bài kiểm tra định kỳ — 10 phút hôm nay luôn rẻ hơn nhiều ngày dọn malware sau này.