Pada kesempatan kali ini aku akan sedikit membahas wacana permasalahan, bugs/vulnerability yang drupal umumkan pada 28 Maret 2018 sebagai sebuah keretanan yang sangat kritis. Kerentanan tersebut kini ditandai sebagai SA-CORE-2018-002. Kerentanan ini memungkinkan seseorang untuk melaksanakan sanksi kode jarak jauh memakai inti Drupal
Informasi Dasar
Drupal core mengumumkan penasehat keamanan untuk kerentanan yang dinilai sebagai "Sangat Kritis" peringkat tertinggi yang dimiliki Drupal pada sistem peringkat risiko keamanan mereka, yang didasarkan pada Sistem Penilaian Penyalahgunaan Umum NIST (NISTIR 7864). Jenis kerentanan yakni problem Eksekusi Kode Remote yang tidak diautentikasi.Kerentanan ini mempengaruhi inti Drupal dan mempengaruhi versi 7.x, 8.3.x, 8.4.x dan 8.5.x dari Drupal.
Eksploitasi yang sukses akan mengarah pada kompromi potensial dari aplikasi web dan mungkin sistem operasi yang mendasarinya juga.
Apa yang ada di patch?
Melihat sekilas pada 7,58 cabang Drupal yang memperbaiki problem ini menunjukkan bahwa 1 file gres telah ditambahkan dan file yang sudah ada sebelumnya telah diperbarui.
Direktori "/ termasuk" berisi beberapa file .inc yang dipanggil ketika Drupal diakses untuk mengatur lingkungan server, variabel sisi server dan penanganan data yang diberikan pengguna di server.
Versi rilis baru, 7.58, mempunyai file gres berjulukan 'request-sanitizer.inc' yang berisi fungsi untuk membersihkan input pengguna yang disediakan melalui GET, POST, atau cookie.
Git berkomitmen untuk patch ini di https://github.com/drupal/drupal/commit/19b69fe8af55d8fac34a50563a238911b75f08f7 dengan file gres inti / lib / Drupal / Core / Security / RequestSanitizer.php yang berisi kode untuk membersihkan input pengguna.
Fungsi "sanitasi" mendapatkan parameter yang dikirim melalui GET, POST, dan cookie, dan menggantikan seruan dengan versi yang disanitasi yang diperoleh dari fungsi 'stripDangerousValues'.
Fungsi utama yang melaksanakan pencucian yakni 'stripDangerousValues' di baris 84. Fungsi ini menyelidiki apakah input yakni larik dan kalau kemudian menyelidiki apakah nama kunci parameter masing-masing dimulai dengan #. Pada dasarnya, nilai kembalian akan menghapus # dan mengembalikan array input kembali ke fungsi panggilan.
Masalah fundamental yakni bahwa inti Drupal (seperti framework lainnya) mendapatkan parameter seruan sebagai objek larik. Seorang pengguna sanggup mengirimkan objek array ke aplikasi dengan keyname berisi payload yang Drupal akan proses tanpa sanitasi.
Eksploitasi vektor?
Mengingat bahwa inti Drupal yakni open source dan diff tersedia, saya berharap eksploit akan segera keluar, yang akan meningkatkan rating tingkat keparahan problem ini ke 25/25 pada Sistem Penilaian Penyalahgunaan Umum NIST. Melihat patch, eksploit akan terlihat seperti:
index.php?page['#payload']=home.php
Di antara para pengembang Drupal, diketahui bahwa Drupal memungkinkan penggunaan hash di depan properti untuk membedakan antara properti dan elemen anak HTML ketika memakai API Formulir. Misalnya, $ form ['list'] ['element'] yakni elemen anak, sedangkan $ form ['list'] ['# title'] yakni properti.
Drupal membentuk referensi API mempunyai beberapa tumpuan yang mungkin sanggup dipakai untuk menciptakan exploit https: //api.drupal.org/api/drupal/developer%21topics%21forms_api_reference.html/7.x
Kesimpulan :
Saran bagi para pengembang atau pengelola situs Drupal yakni untuk sesegara mungkin melaksanakan pembaharuan atau melaksanakan update drupalSumber sumber :
- https://www.drupal.org/sa-core-2018-002
- https://groups.drupal.org/security/faq-2018-002