Kali ini masalah keamanan kritis ditemukan dalam plugin WordPress Ad Inserter, yang mana saat ini telah diinstal pada lebih dari 200.000 situs web. Kerentanan ini memungkinkan penyerang terotentikasi untuk mengeksekusi kode PHP secara remote.
Penyalahgunaan fungsi perlindungan CSRF
Kerentanan berasal dari penggunaan check_admin_referer() untuk otorisasi, ketika itu dirancang khusus untuk melindungi situs WordPress terhadap eksploitasi cross-site request forgery (CSRF) yang menggunakan nonces – token satu kali yang digunakan untuk memblokir permintaan yang sudah kadaluwarsa dan permintaan berulang.
Praktik ini tidak dianjurkan oleh situs web dokumentasi WordPress resmi yang mengatakan bahwa “Nonces tidak boleh diandalkan untuk otentikasi atau otorisasi, kontrol akses.”
Kerentanan dianggap kritis dan memengaruhi semua situs web WordPress yang terinstal plugin Ad Inserter versi 2.4.21 atau di bawahnya.
Untuk memperbaiki masalah ini, admin situs web harus memperbaruinya ke versi 2.4.22 yang dirilis oleh pengembang plugin dalam satu hari setelah diberitahu tentang kerentanan tersebut.
Menyalahgunakan Plugin WordPress Ad Inserter
Penyerang terotentikasi yang mendapatkan nonce dapat melewati pemeriksaan otorisasi yang diberdayakan oleh fungsi check_admin_referer() untuk mengakses mode debug yang disediakan oleh plugin Ad Inserter.
“Biasanya, fitur debugging ini hanya tersedia untuk administrator, dan ketika opsi-opsi tertentu diaktifkan, blok Javascript disertakan pada hampir setiap halaman. Javascript itu berisi angka yang sah untuk tindakan ai_ajax_backend,” menurut Wordfence.
Namun, begitu penyerang memiliki satu nonce yang dapat dimilikinya, ia dapat segera memicu fitur debugging dan, bahkan lebih berbahaya, “memanfaatkan fitur pratinjau iklan dengan mengirimkan muatan berbahaya yang berisi kode PHP arbitrary.”
Pengembang plugin menerbitkan perbaikan 2.4.22 pada 13 Juli dengan perbaikan untuk kerentanan remote code execution terotentikasi setelah diberitahu tentang kerentanan pada 12 Juli.