Tấn công chuỗi cung ứng BdThemes đầu độc JSON để tạo quản trị viên WordPress giả mạo

Các nhà nghiên cứu an ninh mạng đã cảnh báo về một cuộc tấn công chuỗi cung ứng ảnh hưởng đến nhà cung cấp plugin WordPress BdThemes, khiến các plugin này bị tạm dừng tải xuống. Không giống các cuộc tấn công truyền thống, tin tặc đã đầu độc luồng dữ liệu JSON tĩnh để tạo tài khoản quản trị viên giả mạo mà không cần chỉnh sửa mã nguồn của plugin.
WordPress Security

Các nhà nghiên cứu an ninh mạng đã cảnh báo về một vụ xâm nhập chuỗi cung ứng ảnh hưởng đến BdThemes, một nhà cung cấp plugin WordPress phổ biến. Sự cố này đã khiến nhóm phụ trách plugin của nền tảng hệ quản trị nội dung (CMS) WordPress phải tạm thời vô hiệu hóa các bản tải xuống của họ.

"Không giống như các cuộc tấn công chuỗi cung ứng phần mềm truyền thống, không có tệp mã nguồn nào bị sửa đổi trong kho lưu trữ chính thức của WordPress.org," nhà nghiên cứu Paolo Tresso từ Wordfence cho biết. "Thay vào đó, các tác nhân đe dọa đã đầu độc một luồng dữ liệu JSON tĩnh từ xa được truy xuất bởi một thành phần banner quảng cáo dành cho quản trị viên."

Danh sách các plugin bị ảnh hưởng

Dưới đây là các plugin bị ảnh hưởng bởi cuộc tấn công này:

  • Element Pack Addons for Elementor (bdthemes-element-pack-lite) – Hơn 100.000 lượt cài đặt.
  • Live Copy Paste for Elementor (live-copy-paste) – Hơn 6.000 lượt cài đặt.
  • Pixel Gallery Addons for Elementor (pixel-gallery).
  • Prime Slider Addons for Elementor (bdthemes-prime-slider-lite).
  • Smart Admin Assistant (smart-admin-assistant).
  • Ultimate Post Kit Addons for Elementor (ultimate-post-kit).
  • Ultimate Store Kit (ultimate-store-kit) – Hơn 6.000 lượt cài đặt.

Người dùng khi truy cập vào danh sách các plugin nêu trên trong thư mục plugin của WordPress sẽ thấy thông báo rằng chúng đã bị đóng từ ngày 7 hoặc 8 tháng 8 năm 2026 và hiện không có sẵn để tải xuống cho đến khi hoàn tất "quá trình đánh giá đầy đủ."

Lỗ hổng XSS thông qua API

Theo công ty bảo mật WordPress, vấn đề bắt nguồn từ một thành phần nội bộ có tên là Biggopti được đi kèm với các plugin. Hệ thống này được thiết kế để lấy các banner quảng cáo từ máy chủ API của họ và hiển thị chúng trong bảng điều khiển quản trị WordPress bằng cách truy xuất các tệp JSON liên quan từ một bucket DigitalOcean Spaces.

Thư viện này đã được phát hiện có lỗ hổng Cross-Site Scripting (XSS) trong mã phân tích phản hồi JSON thông qua tham số "display_id" từ Sigmative API, do việc thoát (escaping) phía máy khách không đầy đủ. Kết quả là, một kẻ tấn công xâm nhập được API có thể chèn các tập lệnh web độc hại vào các trang, vốn sẽ được thực thi mỗi khi người dùng truy cập vào đó.

Vì tập lệnh này chạy trên mỗi lần tải trang "wp-admin", mã độc sẽ được kích hoạt âm thầm trong trình duyệt của bất kỳ quản trị viên nào đang đăng nhập. Lỗ hổng này được xếp hạng 5.4 trên hệ thống điểm CVSS, mức độ nghiêm trọng trung bình.

Cuộc tấn công này đáng chú ý vì nó hoàn toàn được điều khiển qua API và không yêu cầu cập nhật plugin hoặc sửa đổi bất kỳ tệp nào trên đĩa cứng của máy chủ.

Cơ chế hoạt động của Payload độc hại

"Các tác nhân xấu đã có được quyền ghi vào bucket đó, thay thế các phản hồi JSON hợp lệ bằng các Payload được thiết kế riêng để khai thác lỗ hổng," Wordfence cho biết. "XSS thực thi bên trong trình duyệt của mọi quản trị viên đang đăng nhập một cách âm thầm. Từ đó, tập lệnh được chèn vào sẽ tạo các tài khoản quản trị viên giả mạo, tải lên một plugin web shell và gửi thông tin về máy chủ điều khiển (C2)."

Payload chính được phân phối tới các plugin thông qua điểm cuối API "api-data-all-records". Một tệp JavaScript có tên "w2.js" thực hiện các hành động sau:

  • Liên lạc với máy chủ C2 (ia-cdn[.]com/fz/c) cùng với nguồn gốc của trang web nạn nhân để nhận hướng dẫn mục tiêu.
  • Tạo một quản trị viên giả mạo mới thông qua WordPress REST API.
  • Tải xuống một tệp ZIP plugin giả từ máy chủ C2 và cài đặt nó, dẫn đến việc triển khai một web shell PHP (emer-run.php).
  • Sử dụng web shell để cài đặt hai module duy trì sự hiện diện vào thư mục "mu-plugins". Một là "magic-login backdoor" cho phép truy cập quản trị không cần xác thực, và hai là một module tàng hình nhằm che giấu các tài khoản người dùng giả mạo khỏi danh sách quản trị viên.

Sự tinh vi trong việc tạo thông tin đăng nhập

Một Payload thay thế ("x.js") được tìm thấy trên cơ sở hạ tầng của nhà phát triển plugin được thiết kế để tạo ra các thông tin đăng nhập quản trị viên "xác định" (deterministic), được tính toán dựa trên tên miền của trang web nạn nhân.

"Thuật toán này tạo ra tên người dùng và mật khẩu có thể dự đoán được (ví dụ: bd_ kèm theo một chuỗi băm 6 ký tự). Vì các thông tin đăng nhập này mang tính xác định, kẻ tấn công không cần lưu trữ danh sách các trang web bị xâm nhập một cách tập trung, và những người ứng cứu sự cố có thể tính toán chính xác tên người dùng và mật khẩu để truy tìm trên các tên miền nghi ngờ," Wordfence giải thích.

Mối liên hệ với các chiến dịch khác

Máy chủ C2 được sử dụng trong chiến dịch này được đánh giá là có liên quan đến hai cuộc tấn công chuỗi cung ứng phần mềm khác liên quan đến Advanced Responsive Video Embedder (CVE-2026-18072) và OptinMonster trong những tháng gần đây. Điều này cho thấy mục tiêu cuối cùng của chiến dịch là thiết lập sự hiện diện quản trị bí mật và thực thi mã từ xa (RCE) trên môi trường WordPress.

Sự việc này diễn ra chỉ vài ngày sau khi WordPress khắc phục một lỗ hổng phản hồi XSS trước xác thực (CVE-2026-64638, còn gọi là XSS2Shell, điểm CVSS: 8.9), lỗ hổng có thể bị khai thác để thực thi mã PHP trên máy chủ khi một quản trị viên tương tác với một trang web do kẻ tấn công kiểm soát.