Security

Celah Ninja Forms dan WPC Product Bundles Dieksploitasi untuk Bobol Situs WordPress

Hacker mulai mengeksploitasi vulnerability stored cross-site scripting (XSS) pada dua plugin WordPress yang berbeda, yakni Ninja Forms dan WPC Product Bundles for WooCommerce, untuk mengambil alih website, memasang backdoor, dan membuat rogue administrator account yang sebagian sengaja disembunyikan dari dashboard.

Dua vulnerability tersebut dilacak sebagai CVE-2026-94504 pada Ninja Forms versi 3.15.3 dan sebelumnya serta CVE-2026-93836 pada WPC Product Bundles for WooCommerce versi 8.6.6 dan sebelumnya.

Menurut Patchstack, attacker menggunakan JavaScript payload yang sama dalam serangan terhadap kedua plugin. Script malicious tersebut dikirim dari domain imgcdn1[.]com, mengindikasikan campaign kemungkinan dijalankan oleh threat actor yang sama.

Serangan menjadi berbahaya ketika administrator WordPress yang sudah login membuka content yang telah disisipi payload. JavaScript kemudian berjalan menggunakan authenticated session administrator dan memanfaatkan legitimate WordPress functionality untuk memasang malicious plugin serta membangun beberapa persistence mechanism.

Dua Plugin WordPress Menjadi Target Campaign yang Sama

Campaign pertama kali terdeteksi Patchstack pada 4 Oktober 2026 ketika attacker mengeksploitasi pengguna WPC Product Bundles for WooCommerce.

Sehari kemudian, aktivitas serupa ditemukan menargetkan Ninja Forms.

Walaupun kedua plugin tidak berkaitan satu sama lain, serangan menggunakan JavaScript payload yang sama.

Kesamaan infrastructure dan payload yang berasal dari imgcdn1[.]com menjadi indikasi kuat bahwa eksploitasi terhadap kedua plugin merupakan bagian dari campaign yang sama.

Attacker tampaknya mencari berbagai stored XSS vulnerability yang dapat menghasilkan kondisi serupa: malicious JavaScript tersimpan pada WordPress kemudian dieksekusi ketika administrator membuka data tersebut.

Ninja Forms Digunakan Lebih dari 500.000 Website

Dari dua plugin yang menjadi target, Ninja Forms memiliki installation base terbesar.

Plugin tersebut aktif pada lebih dari 500.000 website WordPress.

Ninja Forms memungkinkan pengguna membuat custom form tanpa perlu menulis code secara manual.

Form plugin biasanya digunakan untuk contact form, registration, feedback, lead generation, survey, dan berbagai jenis data submission lainnya.

Karena menerima input dari visitor, form plugin menjadi salah satu komponen yang perlu memiliki input sanitization dan output escaping yang kuat.

Jika attacker dapat menyimpan JavaScript berbahaya melalui form submission dan script tersebut kemudian dirender kepada administrator tanpa perlindungan yang tepat, stored XSS dapat terjadi.

CVE-2026-94504 Berdampak pada Ninja Forms

Vulnerability pada Ninja Forms dilacak sebagai CVE-2026-94504 dan mendapatkan severity rating tinggi.

Affected version adalah:

Ninja Forms 3.15.3 dan versi sebelumnya.

Patch tersedia mulai:

Ninja Forms 3.15.4.

Administrator yang masih menjalankan affected version disarankan segera melakukan update ke release terbaru.

Namun, update hanya menutup vulnerability.

Jika website sudah dikompromikan sebelum patch diterapkan, upgrade Ninja Forms tidak otomatis menghapus backdoor atau rogue administrator account yang telah dibuat attacker.

WPC Product Bundles Aktif di Lebih dari 30.000 Situs

Plugin kedua adalah WPC Product Bundles for WooCommerce.

Plugin tersebut digunakan untuk menggabungkan beberapa product menjadi bundle di WooCommerce dan aktif pada lebih dari 30.000 website WordPress.

Vulnerability yang memengaruhinya dilacak sebagai CVE-2026-93836.

Affected version adalah:

WPC Product Bundles for WooCommerce 8.6.6 dan sebelumnya.

Perbaikan tersedia mulai:

WPC Product Bundles for WooCommerce 8.6.7.

Administrator yang menggunakan plugin tersebut sebaiknya memastikan installation sudah menjalankan versi 8.6.7 atau yang lebih baru.

Kedua Celah Merupakan Stored XSS

CVE-2026-94504 dan CVE-2026-93836 sama-sama merupakan stored cross-site scripting vulnerability.

Berbeda dengan reflected XSS yang biasanya membutuhkan korban membuka crafted URL, stored XSS memungkinkan malicious payload disimpan pada application.

Payload kemudian menunggu hingga pengguna lain membuka content yang terinfeksi.

Dalam campaign ini, target utama adalah administrator WordPress yang sedang memiliki authenticated session.

Begitu administrator membuka data yang telah dimodifikasi attacker, JavaScript dapat berjalan dalam security context website tersebut.

Browser melihat script sebagai bagian dari legitimate WordPress site sehingga request yang dilakukan dapat menggunakan session administrator.

Attacker Menanam x.js pada Data WordPress

Menurut Patchstack, attacker mencoba menanam malicious JavaScript bernama x.js.

Lokasi penyimpanan payload berbeda tergantung plugin yang dieksploitasi.

Pada WooCommerce, script ditanam melalui order data.

Pada Ninja Forms, attacker menggunakan form submission.

Payload kemudian tersimpan hingga administrator membuka content tersebut melalui WordPress backend.

Serangan tidak langsung terjadi saat payload dikirim.

Trigger sebenarnya terjadi ketika administrator yang sudah login melihat malicious content.

Karakteristik tersebut menjadi salah satu alasan stored XSS berbahaya pada administrative application.

Session Administrator Digunakan untuk Mengambil Alih Website

Ketika malicious JavaScript dijalankan, script memperoleh keuntungan dari fakta bahwa korban sudah memiliki authenticated WordPress administrator session.

Payload kemudian mengambil administrative nonce yang dibutuhkan untuk melakukan privileged action.

WordPress menggunakan nonce sebagai salah satu mekanisme untuk membantu melindungi action tertentu dari request yang tidak sah.

Namun, ketika malicious JavaScript sudah berjalan dalam authenticated administrator context, script dapat berinteraksi dengan legitimate interface dan memperoleh nonce yang dibutuhkan.

Attacker kemudian menggunakan legitimate WordPress function untuk menjalankan tahap berikutnya.

Plugin Palsu “WP Smart Thumbnails” Dipasang

JavaScript selanjutnya memasang malicious WordPress plugin yang menyamar sebagai:

WP Smart Thumbnails versi 1.2.4

Plugin tersebut mengklaim berasal dari:

MediaPress Labs

Namun, plugin itu merupakan bagian dari attack chain.

Penggunaan nama yang terdengar seperti legitimate WordPress utility dapat membantu backdoor lolos dari pemeriksaan administrator.

Plugin thumbnail merupakan jenis extension yang cukup umum sehingga keberadaannya mungkin tidak langsung menimbulkan kecurigaan pada website dengan banyak plugin.

Setelah terinstal, malicious PHP script di dalam plugin membantu attacker mempertahankan akses ke website.

Empat Jalur Akses Dibuat oleh Attacker

Patchstack menemukan campaign membangun empat access mechanism berbeda pada compromised WordPress site.

Mekanisme tersebut terdiri dari:

  1. Administrator account yang terlihat secara normal.
  2. Administrator account yang disembunyikan dari WordPress dashboard.
  3. Secret login URL yang dapat mengautentikasi attacker sebagai administrator tertua pada website.
  4. Unauthenticated file manager yang dapat diakses langsung melalui PHP file milik malicious plugin.

Penggunaan beberapa persistence mechanism membuat proses pembersihan jauh lebih sulit.

Menghapus satu backdoor tidak menjamin attacker kehilangan akses.

Administrator Account Pertama Sengaja Terlihat

Salah satu administrator account yang dibuat attacker dapat terlihat melalui normal WordPress user management interface.

Account seperti ini relatif mudah ditemukan apabila site owner rutin melakukan audit terhadap user.

Namun, keberadaan visible rogue account juga dapat berfungsi sebagai distraction.

Administrator mungkin menemukan account tersebut, menghapusnya, lalu menganggap website sudah bersih.

Padahal attacker masih memiliki access mechanism lain yang jauh lebih tersembunyi.

Karena itu, incident response tidak boleh berhenti setelah menemukan satu malicious user.

Administrator Kedua Disembunyikan dari Dashboard

Persistence mechanism kedua jauh lebih berbahaya.

Attacker membuat fully privileged administrator account yang tidak terlihat melalui normal WordPress dashboard.

Menurut Patchstack, account tersebut:

  • Tidak muncul di Users → All Users.
  • Tidak muncul dalam filter Administrator.
  • Tidak ikut dihitung pada total user yang ditampilkan di bagian atas daftar.

Dengan kata lain, site owner yang hanya memeriksa WordPress dashboard dapat mengira tidak ada rogue account.

Padahal hidden account memiliki administrator privilege penuh.

Untuk mendeteksinya, administrator mungkin perlu memeriksa WordPress database, WP-CLI, atau sumber data lain di luar normal dashboard interface.

Secret Login URL Memberikan Akses sebagai Administrator Lama

Attacker juga membuat secret login URL.

Endpoint tersebut dapat digunakan untuk mengautentikasi attacker sebagai administrator account tertua yang sudah ada pada website.

Mekanisme ini sangat berbahaya karena tidak bergantung pada rogue user baru.

Attacker dapat menggunakan identity administrator legitimate.

Akibatnya, site owner yang hanya menghapus suspicious account tetap belum memutus persistence.

Secret authentication mechanism perlu ditemukan dan dihapus dari filesystem maupun plugin yang memasangnya.

File Manager Bisa Diakses Tanpa Authentication

Access mechanism keempat adalah unauthenticated file manager.

Tool tersebut dapat diakses melalui direct request menuju main PHP file dari malicious plugin.

File manager tidak menyediakan kemampuan langsung untuk menjalankan system command.

Namun, kemampuan mengelola file tetap memberikan attacker jalur berbahaya.

Mereka dapat mengunggah additional payload, mengubah PHP file, memasang web shell, memodifikasi theme atau plugin, maupun menanam malicious JavaScript tambahan.

Pada WordPress environment, kemampuan menulis PHP file pada lokasi yang dapat dieksekusi sering kali sudah cukup untuk memperluas compromise.

Menghapus WP Smart Thumbnails Tidak Cukup

Salah satu aspek paling penting dari campaign adalah persistence tetap dapat bertahan setelah malicious WP Smart Thumbnails dihapus.

Attacker menggunakan auxiliary attack plugin terpisah untuk mempertahankan hidden account dan secret login URL.

Plugin tambahan tersebut menggunakan backdated timestamp.

Tujuannya adalah membuat malicious file terlihat lebih lama sehingga tidak langsung terlihat sebagai file yang baru dibuat ketika incident berlangsung.

Teknik ini dapat mengelabui administrator yang melakukan triage berdasarkan modification time.

Karena itu, sekadar menghapus plugin WP Smart Thumbnails tidak menjamin website kembali aman.

Update Plugin Juga Tidak Membersihkan Website yang Sudah Diretas

Patchstack menekankan bahwa memperbarui vulnerable plugin hanya mencegah eksploitasi baru terhadap vulnerability tersebut.

Update tidak melakukan remediation terhadap existing compromise.

Jika attacker sudah memperoleh administrator access dan memasang persistence, backdoor akan tetap berada di website setelah Ninja Forms atau WPC Product Bundles diperbarui.

Perbedaan antara patching dan incident remediation sangat penting.

Patching memperbaiki vulnerability.

Remediation menghapus artifact attacker dan memastikan seluruh unauthorized access telah dicabut.

Website yang menunjukkan indicator of compromise membutuhkan keduanya.

Administrator Harus Memeriksa Tanda-Tanda Kompromi

Administrator yang menggunakan affected plugin sebaiknya tidak hanya memeriksa version.

Website juga perlu diperiksa untuk kemungkinan indicator of compromise.

Hal yang perlu diperhatikan termasuk keberadaan plugin WP Smart Thumbnails 1.2.4 yang mengklaim berasal dari MediaPress Labs apabila plugin tersebut tidak pernah sengaja dipasang.

User account baru dengan administrator privilege juga perlu diperiksa.

Karena attacker dapat menyembunyikan account dari dashboard, pemeriksaan melalui database atau WP-CLI menjadi lebih dapat diandalkan dibandingkan hanya menggunakan Users page.

Filesystem juga perlu diperiksa untuk plugin atau PHP file yang tidak dikenal.

Periksa Seluruh Administrator melalui WP-CLI atau Database

Karena hidden administrator tidak muncul pada normal dashboard, site owner perlu menggunakan metode yang tidak bergantung pada manipulated WordPress UI.

WP-CLI dapat digunakan untuk melihat user yang terdaftar secara langsung melalui WordPress.

Administrator juga dapat memeriksa relevant table di database untuk memastikan tidak terdapat user atau privilege assignment yang tidak dikenal.

Perhatian khusus perlu diberikan pada account dengan administrator capability yang tidak pernah dibuat secara resmi.

Jika website merupakan bagian dari managed hosting environment, provider juga dapat membantu melakukan malware scan dan integrity checking.

Credential Perlu Dirotasi Jika Compromise Ditemukan

Apabila evidence menunjukkan website sudah berhasil diambil alih, administrator sebaiknya menganggap credential yang dapat diakses melalui WordPress berpotensi terdampak.

Password administrator perlu diganti.

Session aktif juga perlu di-invalidasi agar attacker tidak dapat mempertahankan authenticated session lama.

Database credential, hosting control panel credential, SFTP/SSH account, API key, dan secret lain yang dapat diakses melalui compromised website perlu dievaluasi.

Jika attacker memiliki file manager access, mereka mungkin dapat membaca configuration file yang menyimpan credential tertentu.

Karena itu, remediation perlu mempertimbangkan scope yang lebih luas daripada WordPress user account saja.

Ninja Forms Harus Diperbarui ke 3.15.4 atau Lebih Baru

Pengguna Ninja Forms perlu memastikan plugin sudah menjalankan setidaknya:

Ninja Forms 3.15.4

Versi 3.15.3 dan sebelumnya terdampak CVE-2026-94504.

Jika versi terbaru tersedia, administrator sebaiknya menggunakan latest stable release daripada berhenti tepat pada minimum fixed version.

WordPress plugin sering mendapatkan security maupun maintenance update tambahan setelah vulnerability disclosure.

Automatic update juga dapat dipertimbangkan untuk plugin yang sesuai dengan risk tolerance dan operational policy website.

WPC Product Bundles Harus Diperbarui ke 8.6.7 atau Lebih Baru

Pengguna WPC Product Bundles for WooCommerce perlu menggunakan setidaknya:

WPC Product Bundles 8.6.7

Versi 8.6.6 dan sebelumnya terdampak CVE-2026-93836.

Karena campaign sudah terdeteksi mengeksploitasi vulnerability secara nyata, patch sebaiknya diprioritaskan.

Website e-commerce memiliki risiko tambahan karena compromise dapat berdampak terhadap customer, payment workflow, SEO, reputation, dan business operation.

Attacker yang memperoleh administrator access juga dapat memodifikasi WooCommerce configuration atau menanam malicious code pada storefront.

Eksploitasi Masih Terbatas, tetapi Sudah Aktif

Patchstack menyatakan exploitation yang diamati saat ini masih relatif terbatas.

Namun, fakta bahwa serangan sudah berlangsung membuat kedua vulnerability berbeda dari bug yang baru diketahui secara teoritis.

Attacker telah memiliki working attack chain.

Mereka juga menggunakan infrastructure dan payload yang sama terhadap dua unrelated plugin, menunjukkan campaign dapat diperluas apabila vulnerability dengan karakteristik serupa ditemukan pada plugin lain.

Karena itu, administrator sebaiknya tidak menunggu exploitation menjadi massal sebelum melakukan update.

Stored XSS Bisa Berujung pada Full Site Takeover

Cross-site scripting terkadang dianggap lebih ringan dibandingkan remote code execution.

Campaign ini menunjukkan bahwa asumsi tersebut tidak selalu benar.

Stored XSS yang dapat dieksekusi dalam authenticated administrator session dapat memberikan attacker akses terhadap privileged action.

Jika administrator dapat menginstal plugin melalui dashboard, JavaScript yang berjalan dengan session administrator berpotensi melakukan hal yang sama.

Dari titik tersebut, attacker dapat memasang PHP code dan mengubah client-side vulnerability menjadi persistent server-side compromise.

Inilah yang terjadi pada campaign Ninja Forms dan WPC Product Bundles.

WordPress Site Owner Perlu Patch sekaligus Melakukan Audit

Campaign terhadap Ninja Forms dan WPC Product Bundles menunjukkan bahwa memperbarui plugin saja tidak selalu cukup setelah vulnerability mulai dieksploitasi.

Pengguna Ninja Forms harus menjalankan versi 3.15.4 atau lebih baru, sedangkan pengguna WPC Product Bundles for WooCommerce perlu memperbarui ke versi 8.6.7 atau lebih baru.

Namun, website yang mungkin sudah terkena serangan perlu diperiksa lebih lanjut.

Attacker membuat empat jalur persistence, termasuk visible administrator, hidden administrator, secret login URL, dan unauthenticated file manager.

Bahkan setelah malicious WP Smart Thumbnails dihapus, sebagian persistence tetap dapat berfungsi melalui auxiliary plugin yang terpisah.

Karena itu, administrator perlu melakukan audit terhadap user, plugin, filesystem, database, active session, dan credential.

Dengan Ninja Forms digunakan pada lebih dari 500.000 website dan WPC Product Bundles aktif pada lebih dari 30.000 site, administrator WordPress yang menggunakan salah satu plugin tersebut sebaiknya memprioritaskan update dan memastikan website belum menunjukkan tanda compromise.

Sumber: Patchstack

Leave a Reply

Your email address will not be published. Required fields are marked *


Back to top button