Tấn công chuỗi cung ứng WordPress: Kẻ tấn công mua 30 plugin trên Flippa và cài cửa sau
Một kẻ tấn công đã chi số tiền lớn để mua lại danh mục hơn 30 plugin WordPress trên Flippa, cài đặt cửa sau ngay trong lần commit đầu tiên và chờ đợi 8 tháng trước khi kích hoạt tấn công 400.000 trang web. Vụ việc sử dụng hợp đồng thông minh Ethereum để điều khiển máy chủ, phơi bày lỗ hổng nghiêm trọng trong quy trình chuyển giao quyền sở hữu mà WordPress.org vẫn chưa khắc phục.

Một kẻ tấn công đã mua lại toàn bộ danh mục "Essential Plugin", bao gồm hơn 30 plugin WordPress với tổng cộng 400.000 lượt cài đặt, trên thị trường trực tuyến Flippa với mức giá sáu chữ số. Ngay trong lần commit mã nguồn đầu tiên sau khi tiếp quản, kẻ tấn công đã cài một cửa sau (backdoor) dạng PHP deserialization. Mã độc này nằm im lìm trong suốt 8 tháng trước khi được kích hoạt vào tháng 4 năm 2026, tiêm các liên kết spam SEO được ngụy trang vào mọi trang web đang chạy các plugin bị xâm phạm. WordPress.org đã đóng cửa vĩnh viễn tất cả 31 plugin này chỉ trong một ngày.
Austin Ginder, người sáng lập Anchor Hosting và là nhà nghiên cứu phát hiện ra cuộc tấn công, nhận định:
Hai cuộc tấn công chuỗi cung ứng trong hai tuần. Cả hai đều tuân theo cùng một mô hình: Mua một plugin đáng tin cậy với cơ sở cài đặt đã được thiết lập, thừa hưởng quyền commit trên WordPress.org và tiêm mã độc.
Mô hình tấn công chuỗi cung ứng
Mô hình tấn công này không dành riêng cho WordPress. Nó khai thác một điểm yếu cấu trúc chung của mọi hệ sinh thái gói phần mềm nơi quyền bảo trì có thể được chuyển giao: npm, PyPI, các cửa hàng tiện ích mở rộng trình duyệt và thị trường VS Code đều đối mặt với rủi ro tương tự. Người mua thừa hưởng quyền commit, uy tín và sự tin tưởng ngầm của người dùng từ người bảo trì cũ. Không có quy trình xem xét mã bổ sung nào được kích hoạt. Không có thông báo thay đổi quyền kiểm soát nào được gửi đi.
Các tiền lệ đã được ghi nhận rõ ràng. Năm 2018, gói npm event-stream được chuyển cho một người bảo trì mới đã nhúng mã để đánh cắp ví Bitcoin. Đến năm 2024, cửa sau XZ Utils gần như cấp quyền truy cập root cho một phần lớn máy chủ Linux trên thế giới sau khi kẻ tấn công dành hai năm để xây dựng lòng tin trong cộng đồng mã nguồn mở. Mô hình luôn như nhau: Xây dựng lòng tin, có được quyền truy cập, chờ đợi và tấn công.
Trong một cuộc thảo luận trên LinkedIn về vụ việc này, kỹ sư phần mềm Levent Sali lập luận rằng việc chuyển dịch khỏi WordPress không loại bỏ rủi ro:
Nếu bạn chuyển từ WordPress sang React/Next.js, bạn hiện đang tin tưởng hàng trăm gói npm, nhiều gói trong số đó được duy trì bởi một tình nguyện viên không công. Bạn chưa loại bỏ rủi ro. Bạn chỉ thay đổi nhà cung cấp.
Thực thi kỹ thuật tinh vi
Về mặt kỹ thuật, cuộc tấn công diễn ra kiên nhẫn và tinh vi. Cửa sau được giới thiệu trong phiên bản 2.6.7 vào ngày 8 tháng 8 năm 2025, được ngụy trang sau một mục ghi chú thay đổi (changelog) có nội dung "Kiểm tra tính tương thích với phiên bản WordPress 6.8.2". 191 dòng mã được thêm vào bao gồm một phương thức fetch_ver_info() gọi file_get_contents() trên máy chủ của kẻ tấn công và chuyển phản hồi cho @unserialize(), cùng với một điểm cuối API REST không được xác thực.
Khi được kích hoạt vào ngày 5-6 tháng 4, payload tải xuống một tệp tên là wp-comments-posts.php (đ cố tình giống với tệp hợp pháp của WordPress là wp-comments-post.php), tiêm mã PHP vào wp-config.php và phục vụ các liên kết spam cùng trang giả chỉ dành cho Googlebot, trong khi vẫn vô hình với chủ sở hữu trang web.
Hạ tầng chỉ huy và kiểm soát (C2) đã sử dụng một hợp đồng thông minh Ethereum để phân giải tên miền của nó, truy vấn các điểm cuối RPC blockchain công khai. Các phương pháp takedown tên miền truyền thống sẽ không hiệu quả vì kẻ tấn công có thể cập nhật hợp đồng thông minh để trỏ đến một tên miền mới bất cứ lúc nào. Kỹ thuật này cũng được quan sát thấy trong cuộc tấn công chuỗi cung ứng blockchain CanisterWorm được phát hiện vào tháng 3 năm 2026.
Ginder đã truy tìm dòng thời gian thông qua 939 bản sao lưu, sử dụng tìm kiếm nhị phân trên các bản sao lưu hàng ngày để xác định cửa sổ tiêm injection vào một khoảng thời gian 6 giờ 44 phút vào ngày 6 tháng 4.
Phản ứng và bài học cho hệ sinh thái
Phản ứng của WordPress.org rất nhanh một khi cuộc tấn công được phát hiện. Đội ngũ Plugin đã đóng tất cả 31 plugin, đẩy một bản cập nhật tự động bắt buộc (v2.6.9.1) vô hiệu hóa cơ chế "gọi về nhà" (phone-home) và thêm cảnh báo trên bảng điều khiển. Tuy nhiên, bản cập nhật bắt buộc không dọn dẹp mã độc đã tiêm trong wp-config.php, nghĩa là các trang web bị xâm phạm trước đó tiếp tục phục vụ spam ẩn cho đến khi quản trị viên kiểm tra và sửa chữa tệp thủ công.
Bài học lớn hơn của hệ sinh thái là điều khiến vụ việc này có liên quan ngoài phạm vi WordPress. npm đã phản ứng với các cuộc tấn công chuỗi cung ứng của riêng mình bằng xác thực hai yếu tố bắt buộc cho người bảo trì các gói có tác động lớn, xác nhận nguồn gốc (provenance attestation) và quét bảo mật tự động. PyPI cũng đi theo con đường tương tự. WordPress, dù cung cấp năng lực cho khoảng 43% tất cả các trang web, chưa triển khai bất kỳ biện pháp bảo vệ nào trong số này.
Đối với các nhà phát triển sử dụng các phụ thuộc trong bất kỳ hệ sinh thái nào, sự cố này củng cố một số thực hành: nên cố định phiên bản phụ thuộc thay vì cập nhật tự động mù quáng, giám sát kỹ các bản ghi thay đổi để phát hiện thay đổi quyền sở hữu và các bản cập nhật "tương thích" đáng ngờ, kiểm toán người bảo trì đằng sau các phụ thuộc quan trọng và coi mọi lần chuyển giao quyền sở hữu là tín hiệu để xem xét kỹ lưỡng bản phát hành tiếp theo.
Bài viết liên quan
Phần mềm
Lo ngại về Bun: Liệu sự suy giảm của Claude Code có phải là điềm báo cho tương lai của runtime này?
04 tháng 5, 2026

Công nghệ
Nhà xuất bản cáo buộc Mark Zuckerberg cá nhân chỉ đạo vi phạm bản quyền để đào tạo AI Llama
05 tháng 5, 2026

Phần mềm
Bun công bố hướng dẫn chuyển đổi sang Rust, nhưng gọi dự án viết lại là "chưa chín muồi"
05 tháng 5, 2026
