wp2shell: Bug Rantai Dua Bikin Situs WordPress Bisa Diambil Alih Tanpa Login

Situs WordPress yang baru saja diinstal—nol plugin tambahan, nol pengaturan aneh, langsung dari paket resmi—tetap bisa diambil alih penuh oleh siapa pun yang mengirim satu permintaan HTTP anonim. Tidak perlu akun, tidak perlu korban mengklik apa pun. Itulah yang terjadi pada wp2shell, rantai dua bug di core WordPress yang mulai dieksploitasi di dunia nyata sejak Jumat sore, 17 Juli 2026, hanya beberapa jam sebelum tim WordPress merilis tambalan darurat (The Hacker News).

Yang bikin kasus ini berbeda dari deretan bug WordPress lain yang muncul tiap bulan adalah kombinasinya: dua celah kecil, masing-masing terdengar tidak dramatis kalau berdiri sendiri, tapi begitu dirangkai jadi jalur langsung ke eksekusi kode dari luar sistem otentikasi sama sekali.

Tampilan close-up laptop biru dan putih yang menyala
Tampilan close-up laptop biru dan putih yang menyala

Dua Bug, Satu Rantai Menuju Shell

wp2shell sebenarnya bukan satu CVE, melainkan dua yang saling mengunci. CVE-2026-63030 adalah bug "route confusion" di REST API batch endpoint milik WordPress core—cara server salah menafsirkan permintaan bertumpuk sehingga bisa dipakai memanggil fungsi internal yang seharusnya tidak boleh diakses anonim. CVE-2026-60137 adalah celah SQL injection klasik di core yang, kalau dieksploitasi sendirian, "cuma" bisa membocorkan data dari database (Wordfence).

Masalahnya, dua bug ini bisa dirangkai. Route confusion dipakai untuk menyentuh endpoint yang rentan SQL injection tanpa lolos pemeriksaan otorisasi normal, dan dari sana penyerang menyuntikkan payload yang berujung pada penulisan file berbahaya ke server—alias mendapat shell penuh. Rapid7 mencatat bahwa rantai ini tidak membutuhkan plugin pihak ketiga, tema kustom, atau konfigurasi non-default apa pun: instalasi WordPress "polos" pun kena (Rapid7).

Pola ini—dua bug yang masing-masing "cuma medium" lolos audit terpisah, lalu ternyata saling membuka jalan—makin sering muncul di aplikasi web modern yang API-nya berlapis. Batch endpoint di REST API dibuat untuk efisiensi, supaya klien bisa mengirim banyak permintaan sekaligus dalam satu koneksi. Efisiensi yang sama itulah yang bikin pemeriksaan otorisasi per-permintaan gampang lolos: sistem terlanjur percaya bahwa permintaan di dalam satu batch sudah divalidasi di level luar, padahal tidak.

Versi Mana Saja yang Kena, dan Sejak Kapan Aktif Dieksploitasi

Cakupan dua bug ini tidak sama persis. Celah SQL injection (CVE-2026-60137) sudah ada sejak WordPress 6.8, sementara jalur RCE penuh baru mungkin terjadi mulai versi 6.9 ke atas—spesifiknya 6.9.0 hingga 6.9.4, dan 7.0.0 hingga 7.0.1. Karena itu 6.8.6 cukup menambal bagian SQLi saja, sedangkan 6.9.5, 7.0.2, dan 7.1 Beta 2 menambal keduanya sekaligus.

Yang membuat tim keamanan panik bukan cuma cakupannya, tapi kecepatannya. Menurut Patchstack, eksploitasi aktif di lapangan mulai terpantau sekitar pukul 19.00 waktu setempat (ET) pada 17 Juli, dan proof-of-concept publik sudah beredar tak lama setelahnya—memberi jendela sangat sempit antara bug diketahui dan dieksploitasi massal. Cloudflare merespons dengan mendorong aturan WAF darurat untuk pelanggannya yang memakai WordPress, sebagai lapisan mitigasi sambil situs menunggu proses pembaruan (Cloudflare).

Layar komputer menampilkan baris kode
Layar komputer menampilkan baris kode

Update Sekarang: Ini yang Perlu Dicek

Tim inti WordPress merespons dengan langkah yang jarang dipakai kecuali untuk insiden benar-benar kritis: memaksa pembaruan otomatis (forced update) ke semua instalasi yang mengaktifkan fitur auto-update, tanpa menunggu admin situs mengklik apa pun. Untuk situs yang mematikan fitur itu—biasanya karena alasan kompatibilitas plugin atau kontrol perubahan yang ketat—kewajibannya jadi manual dan mendesak:

  • Cek versi core: harus 7.0.2, 6.9.5, atau 6.8.6 (tergantung jalur mayor yang dipakai), atau naik ke 7.1 Beta 2 kalau memang mengikuti rilis pengujian.
  • Jangan andalkan plugin keamanan sebagai pengganti patch—rantai ini ada di core, bukan di lapisan plugin, jadi mitigasi WAF hanya menunda, bukan menutup celah.
  • Kalau situs memakai hosting terkelola (managed hosting), verifikasi ke penyedia apakah patch sudah didorong otomatis; jangan asumsikan.
  • Untuk situs bervolume tinggi atau bernilai bisnis besar, treat ini sebagai insiden aktif, bukan advisory rutin—cek log akses untuk pola permintaan mencurigakan ke REST API batch endpoint sejak 17 Juli.

Skala dampaknya besar bukan karena satu situs sensasional yang diretas, tapi karena WordPress menopang porsi sangat signifikan dari seluruh situs publik di internet—artinya jendela beberapa jam antara PoC publik dan tambalan massal ini berpotensi menyentuh jutaan instalasi yang tidak sempat ter-update tepat waktu.

Takeaway

wp2shell adalah pengingat bahwa ancaman paling berbahaya jarang datang dari satu bug besar dan mencolok—lebih sering dari dua bug kecil yang lolos review terpisah, lalu ketemu jalan untuk saling melengkapi. Kalau situs WordPress-mu masih hidup dan auto-update mati, ini bukan pembaruan yang bisa ditunda sampai akhir pekan: PoC publik sudah beredar dan eksploitasi sudah berjalan sejak sebelum patch resmi turun. Cek versi core hari ini, bukan nanti.

---

Sumber gambar: Markus Spiske di Unsplash Sumber gambar: Philipp Katzenberger di Unsplash Sumber gambar: Chris Ried di Unsplash

The conversation 0

No comments yet. Start the conversation.

Comments are reviewed before appearing. Links are masked.