Server Linux Berisiko RCE Karena Bug CWP Kritis

Researchers telah menemukan dua bug kritis di Control Web Panel (CWP) – perangkat lunak manajemen hosting web populer yang digunakan oleh lebih dari 200.000 server – yang memungkinkan eksekusi kode jarak jauh (RCE) sebagai root pada server Linux yang rentan.

CWP, sebelumnya dikenal sebagai CentOS Web Panel, adalah perangkat lunak panel kontrol Linux open-source yang digunakan untuk membuat dan mengelola lingkungan hosting web. Perangkat lunak ini mendukung sistem operasi CentOS, Rocky Linux, Alma Linux dan Oracle Linux.

Dua kerentanan – ditemukan oleh Paulos Yibelo dari Octagon Networks – dilacak sebagai CVE-2021-45467 (kerentanan penyertaan file) dan CVE-2021-45466 (bug penulisan file). Ketika dirantai, dua kerentanan dapat menyebabkan RCE.

Dapat Dieksploitasi Tanpa Otentikasi

Masalah ditemukan di bagian panel CWP yang terbuka tanpa otentikasi di root web, menurut writeup Octagon.

“Ternyata, tidak banyak yang terpapar,” tulis para peneliti, tetapi mereka menemukan beberapa hal. Secara khusus, dua halaman spesifik yang menjadi fokus Octagon adalah /user/loader.php dan /user/index.php, yang memiliki metode perlindungan penyertaan file berikut (/user/loader.php):metode perlindungan penyertaan file
. Sumber: Octagon Networks.

Yang merupakan metode yang mendefinisikan GETSecurity() sebagai berikut: definisi
GETSecurity(). Sumber: Octagon Networks.

Untuk mengeksploitasi kerentanan dan menyuntikkan kode berbahaya dari sumber daya jarak jauh, penyerang hanya perlu mengubah pernyataan include, yang digunakan untuk memasukkan konten satu file PHP ke file PHP lain sebelum server dijalankan it.

Untuk melakukannya memerlukan melewati perlindungan keamanan untuk mencegah penyerang mencapai bagian API terbatas tanpa otentikasi: suatu prestasi yang dapat dicapai dengan mendaftarkan kunci API menggunakan bug penyertaan file dan membuat file otorisasi_kunci berbahaya di server menggunakan file -write flaw.

Bukannya CWP tidak memiliki perlindungan yang menandai upaya untuk beralih ke direktori induk. Jika skrip parameter berisi “..” – seperti pada, dua titik – aplikasi menandainya sebagai “upaya peretasan” dan tidak memproses input.

Tetapi perlindungan itu tidak menghentikan penerjemah PHP untuk menerima string yang dibuat khusus dan secara efektif mencapai bypass penuh – dengan membodohi PHP “dengan berpikir tidak ada titik berurutan (..),” para peneliti menjelaskan.

Menjalankan fuzzer yang digambarkan di bawah membuat peneliti Octagon string bypass /.%00./.
Fuzzer yang Octagon digunakan untuk mendapatkan string bypass /.%00./. Sumber: Octagon Networks.

Cara melakukannya, peneliti menjelaskan:
Kirim payload penyertaan file bertenaga byte nol untuk menambahkan kunci API berbahaya.Gunakan kunci API untuk menulis ke file (CVE-2021-45466)

Gunakan langkah #1 untuk memasukkan file yang baru saja kita tulis ke dalam (CVE-2021-45467)

Kerentanan penyertaan file CVE-2021-45467 telah ditambal, tetapi peneliti Octagon mengatakan bahwa mereka masih melihat bagaimana “beberapa berhasil membalikkan patch dan mengeksploitasi beberapa server.” Mereka membagikan video berikut yang menunjukkan masalah:

Octagon akan merilis bukti konsep lengkap untuk mencapai RCE pra-autentikasi “setelah cukup banyak server bermigrasi ke versi terbaru,” menurut report.