WPForms Lite Backdoor: 5 Triệu Site WordPress Bị Cấp Token Admin Không Hỏi, Hướng Dẫn Kiểm Tra

WPForms Lite backdoor: 5 triệu site WordPress bị cấp token admin không hỏi

WPForms Lite, plugin form liên hệ phổ biến nhất WordPress với hơn 5 triệu lượt cài đặt, vừa bị tố cáo thêm backdoor trong phiên bản 2.0.0. Sybre Waaijer, tác giả plugin The SEO Framework, phát hiện file Bridge.php trong onboarding wizard tự động cấp token đăng nhập admin cho server WPForms trong 1 giờ mà không hỏi người dùng. Awesome Motive, công ty đứng sau WPForms, chưa chính thức phát biểu về sự việc này. Nếu bạn đang chạy WPForms Lite 2.0.0 trở lên, mình khuyên bạn kiểm tra ngay.

WPForms Lite Backdoor Là Gì?

WPForms Lite backdoor: 5 triệu site WordPress bị cấp token admin không hỏi

Hôm 11/8/2026, Sybre Waaijer đăng trên X chi tiết về một file có tên wpforms-lite/src/SetupWizard/Bridge.php xuất hiện từ phiên bản WPForms Lite 2.0.0. File này hoạt động như một cầu nối: khi admin mở onboarding wizard, plugin tạo một token đăng nhập có thời hạn 1 giờ và gửi sang ứng dụng chạy trên server WPForms. Server này có thể thay mặt admin thực hiện các thao tác như cài đặt plugin, kích hoạt tính năng, và chuyển hướng form submissions về server WPForms mà không cần xin phép trước.

Cách Onboarding Wizard Của WPForms Lite Hoạt Động

Theo bài kiểm tra thực tế của Roger Montti (Search Engine Journal), quá trình onboarding diễn ra như sau. Khi bạn cài WPForms Lite mới, một wizard welcome hiện ra. Ngay từ bước đầu tiên, bạn thực sự đã rời khỏi site mình và đang ở trên app.wpforms.com mà không hề hay biết. URL trên trình duyệt thay đổi nhưng giao diện vẫn giống WordPress nên nhiều người không nhận ra.

Trong wizard, hai checkbox được tick sẵn và không thể bỏ: “AI Form Generation” (kèm plugin WPConsent) và “Privacy Compliance”. Khi hoàn tất, plugin tự động cài thêm WP Mail SMTP, WPConsent, và các plugin khác từ Awesome Motive. Token admin cấp cho server WPForms cho phép họ cài tới 13 plugin khác nhau từ WordPress.org, bao gồm AIOSEO, OptinMonster, MonsterInsights, Duplicator, và thậm chí cả Contact Form 7 hay Ninja Forms của đối thủ.

Tại Sao Đây Là Vấn Đề Lớn?

Mình thấy ba vấn đề chính ở đây. Thứ nhất, việc chuyển admin sang site bên ngoài mà không thông báo rõ ràng là vi phạm nguyên tắc minh bạch. Bạn tưởng mình đang cấu hình trên site mình, nhưng thực ra đang giao quyền cho server bên thứ ba. Thứ hai, token admin 1 giờ cho phép WPForms cài plugin tùy ý lên site bạn, bao gồm cả plugin từ server riêng của họ, không qua kiểm duyệt của WordPress.org. Thứ ba, form submissions có thể bị chuyển hướng sang server WPForms mà bạn không hề biết.

Định nghĩa backdoor của NIST (Viện Tiêu chuẩn và Công nghệ Quốc gia Mỹ) là “một cách truy cập hệ thống máy tính không được tài liệu hóa”. Token Bridge.php đúng nghĩa là một kênh truy cập admin không được ghi chép trong tài liệu plugin, không có cảnh báo cho người dùng.

Cách Kiểm Tra Site Có WPForms Lite Backdoor Không

Nếu bạn đang dùng WPForms Lite, mình hướng dẫn kiểm tra từng bước. Đầu tiên, xem phiên bản đang chạy bằng cách vào Plugins → Installed Plugins, tìm WPForms Lite. Nếu phiên bản từ 2.0.0 trở lên, site bạn có file Bridge.php.

Kiểm tra trực tiếp file trên server:

# Tìm file Bridge.php trong plugin WPForms Lite
find /var/www/yoursite/public_html/wp-content/plugins/wpforms-lite/ -name "Bridge.php" -type f

# Nếu tìm thấy, xem nội dung để xác nhận
cat /var/www/yoursite/public_html/wp-content/plugins/wpforms-lite/src/SetupWizard/Bridge.php

Nếu bạn dùng shared hosting không có SSH, vào File Manager trong cPanel/DirectAdmin, điều hướng đến wp-content/plugins/wpforms-lite/src/SetupWizard/ và kiểm tra xem file Bridge.php có tồn tại không.

Cách Vô Hiệu Hóa Bridge.php An Toàn

Có nhiều cách để xử lý vấn đề này. Mình khuyên dùng cách phù hợp với trình độ kỹ thuật của bạn.

Cách 1: Xóa File Bridge.php (Nhanh Nhất)

Nếu bạn chỉ cần tắt tính năng onboarding wizard và không dùng nó:

# Xóa file Bridge.php
rm /var/www/yoursite/public_html/wp-content/plugins/wpforms-lite/src/SetupWizard/Bridge.php

# Hoặc đổi tên để backup
mv /var/www/yoursite/public_html/wp-content/plugins/wpforms-lite/src/SetupWizard/Bridge.php \
   /var/www/yoursite/public_html/wp-content/plugins/wpforms-lite/src/SetupWizard/Bridge.php.bak

Lưu ý: khi WPForms Lite cập nhật phiên bản mới, file này sẽ xuất hiện lại. Bạn cần kiểm tra lại sau mỗi lần update.

Cách 2: Block Qua .htaccess

Ngăn server WPForms truy cập vào site bạn bằng cách block request từ domain app.wpforms.com:

# Thêm vào wp-content/plugins/wpforms-lite/.htaccess
<Files "Bridge.php">
    Order Allow,Deny
    Deny from all
</Files>

Cách 3: Chuyển Sang Plugin Form Khác

Nếu bạn không tin tưởng WPForms Lite nữa (mình hoàn toàn hiểu), có nhiều plugin form liên hệ miễn phí tốt hơn không có backdoor:

  • Fluent Forms – miễn phí, nhẹ, không onboarding nặng, đầy đủ tính năng
  • WPForms (bản trả phí) – phiên bản Pro không có Bridge.php vì đã có license xác thực
  • Formidable Forms – miễn phí cho form cơ bản, developer-friendly
  • Contact Form 7 – huyền thoại, đơn giản, không bao giờ tự cài thêm plugin

Awesome Motive Có Đáng Tin Cậy Không?

Một lập luận phổ biến trong cộng đồng WordPress là Awesome Motive (công ty của Syed Balkhi) là nhà phát triển uy tín, đã hoạt động hơn 10 năm với các sản phẩm như AIOSEO, OptinMonster, MonsterInsights. Tuy nhiên, Waaijer chỉ ra rằng Awesome Motive đã từng cross-install plugin của họ và deactivate plugin của đối thủ trong quá khứ, bao gồm cả The SEO Framework của chính ông.

Mình nghĩ vấn đề ở đây không phải là Awesome Motive có ý đồ xấu hay không. Vấn đề là một plugin miễn phí từ WordPress.org tự động cấp quyền admin cho server bên ngoài mà không hỏi người dùng. Đây là tiền lệ nguy hiểm. Nếu plugin nào cũng làm như vậy, hệ sinh thái WordPress sẽ mất đi sự tin cậy cơ bản.

Cộng Đồng WordPress Phản Ứng Thế Nào?

Phản ứng khá chia rẽ. Một bên cho rằng đây là backdoor thực sự, vi phạm nguyên tắc bảo mật cơ bản. Bên kia cho rằng đây chỉ là onboarding wizard bình thường, được admin chủ động kích hoạt, không phải backdoor theo nghĩa truyền thống vì Awesome Motive không thể tự ý truy cập site bạn. Người dùng @marckranat trên X lập luận: “Không có vendor-initiated access, không có auth bypass, không có hidden listener. Nó yêu cầu admin phải chủ động chạy wizard.”

Tuy nhiên, thực tế kiểm tra cho thấy admin thường không biết mình đã rời khỏi site WordPress của mình. URL thay đổi nhưng giao diện vẫn giống hệt. Nhiều người bấm “Install and Continue” mà không đọc kỹ, tưởng đó là bước cài đặt bình thường. Đây mới là điểm đáng lo ngại nhất.

Bài Học Rút Ra Cho Site WordPress Của Bạn

Sự việc WPForms Lite nhắc mình và các bạn ba bài học quan trọng. Thứ nhất, luôn đọc kỹ mọi wizard onboarding trước khi bấm Continue, đặc biệt là URL bạn đang truy cập. Thứ hai, kiểm tra plugin mới cài xem có tự động cài thêm plugin khác không, bằng cách vào Plugins xem danh sách sau khi cài đặt mới. Thứ ba, dùng plugin bảo mật như Wordfence để nhận cảnh báo khi có file mới xuất hiện hoặc khi plugin tự động cài thêm thành phần khác.

Ngoài ra, mình khuyên bạn đăng ký nhận thông báo từ Patchstack hoặc WPScan để cập nhật nhanh nhất khi có vulnerability hoặc backdoor mới被发现 trong plugin WordPress bạn đang dùng.

Kết Luận

WPForms Lite 2.0.0 Bridge.php có phải backdoor hay không vẫn đang gây tranh cãi trong cộng đồng WordPress. Nhưng dù bạn gọi nó là gì, việc plugin tự động cấp token admin cho server bên ngoài mà không xin phép là vấn đề an ninh thực sự. Kiểm tra site ngay nếu bạn đang dùng WPForms Lite, vô hiệu hóa Bridge.php hoặc chuyển sang plugin form khác. Trong thời đại AI và supply chain attack, không plugin nào đáng để bạn giao quyền admin cho bên thứ ba mà không hay biết.

Bạn đã kiểm tra site của mình chưa? Để lại bình luận chia sẻ trải nghiệm nhé. Nếu cần hỗ trợ kiểm tra hoặc thay plugin form, mình sẵn sàng hướng dẫn chi tiết hơn.

Xem thêm: Hướng dẫn kiểm tra WordPress plugin có backdoorBảo vệ WordPress khỏi tấn công brute force.

Thanh Tùng

Mình là Thanh Tùng. Bạn bè gọi mình là "bác sĩ máy tính" vì hễ máy nào có vấn đề là mình muốn mò vào xem sao. Mình viết hướng dẫn theo cách mà mình mong người khác đã viết cho mình ngày xưa — từng bước rõ ràng, không bỏ sót, và nói luôn cái gì hay bị lỗi. Ngoài giờ làm mình chơi guitar, nuôi mèo, và có một con VPS riêng dành riêng cho việc cài thử đủ thứ linh tinh.

Xem tất cả bài viết →

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *