Sebuah syarikat baharu yang berpangkalan di Berlin telah mendedahkan kelemahan pelaksanaan kod jauh (RCE) dan kecacatan skrip silang tapak (XSS) dalam Pling, yang digunakan oleh beberapa katalog aplikasi yang dibina di platform ini. Kelemahan ini boleh membenarkan kod JavaScript dilaksanakan dalam konteks pengguna lain. Laman web yang terjejas termasuk beberapa katalog aplikasi sumber terbuka terkemuka, seperti store.kde.org, appimagehub.com, gnome-look.org, xfce-look.org dan pling.com, antara lain.
Keselamatan Positif, yang menemukan lubang, mengatakan bahawa bug masih ada dalam kod Pling dan penyelenggara belum memberi respons terhadap laporan kerentanan.
Awal tahun ini, kami melihat bagaimana aplikasi desktop yang popular menangani URI yang dibekalkan pengguna dan mendapati kelemahan pelaksanaan kod di beberapa di antaranya. Salah satu aplikasi yang saya periksa adalah KDE Discover App Store, yang ternyata menangani URI yang tidak dipercaya dengan cara yang tidak selamat (CVE-2021-28117, KDE Security Advisory).
Sepanjang perjalanan, saya dengan cepat menemui beberapa kelemahan yang lebih serius di pasaran perisian percuma yang lain.
XSS cacing yang berpotensi untuk serangan rantaian bekalan di pasar yang berpusat di Pling dan pemacu oleh RCE yang mempengaruhi pengguna aplikasi PlingStore masih dapat dieksploitasi.
Pling menampilkan dirinya sebagai pasaran untuk golongan kreatif memuat naik tema dan grafik desktop Linux, antara lain, dengan harapan dapat memperoleh sedikit wang daripada penyokong. Ia didatangkan dalam dua bahagian: kod yang diperlukan untuk menjalankan bazar bling anda sendiri dan aplikasi berasaskan Elektron yang boleh dipasang oleh pengguna untuk mengurus tema mereka daripada pasaran Pling. Kod web mengandungi kerentanan XSS, manakala klien mengandungi kedua-dua kerentanan XSS dan RCE. Pling menguasakan beberapa laman web, daripada pling.com dan store.kde.org hingga gnome-look.org dan xfce-look.org.
Inti masalahnya ialah platform Pling membenarkan penambahan blok multimedia dalam format HTML, contohnya, untuk membenamkan video YouTube atau imej. Kod yang ditambah melalui borang tidak disahkan dengan betul, membolehkan kod berniat jahat ditambah dengan menyamar sebagai imej dan meletakkan maklumat dalam direktori yang akan melaksanakan kod JavaScript apabila dilihat. Jika maklumat ini boleh diakses oleh pengguna yang mempunyai akaun, maka tindakan dalam direktori boleh dimulakan bagi pihak pengguna tersebut, termasuk menambah panggilan JavaScript pada halaman mereka, sekali gus melaksanakan sejenis cacing rangkaian dengan berkesan.
Tambahan pula , satu kelemahan telah dikenal pasti dalam aplikasi PlingStore, yang ditulis menggunakan platform Electron, yang membolehkannya menavigasi direktori OpenDesktop tanpa pelayar dan memasang pakej yang terdapat di sana. Kelemahan dalam PlingStore ini membolehkan kodnya dilaksanakan pada sistem pengguna.
Apabila aplikasi PlingStore berjalan, proses ocs-manager juga dimulakan, menerima sambungan setempat melalui WebSocket dan melaksanakan arahan seperti memuatkan dan melancarkan aplikasi dalam format AppImage . Arahan ini sepatutnya dihantar oleh aplikasi PlingStore, tetapi sebenarnya, disebabkan kekurangan pengesahan, permintaan kepada ocs-manager boleh dihantar daripada pelayar pengguna. Jika pengguna membuka laman web yang berniat jahat, ia boleh memulakan sambungan dengan ocs-manager dan menyebabkan kod dilaksanakan pada sistem pengguna.
Kerentanan XSS juga telah dilaporkan dalam direktori extensions.gnome.org; dalam medan dengan URL halaman utama plugin, anda boleh menentukan kod JavaScript dalam format "javascript:code" dan apabila anda mengklik pada pautan tersebut, JavaScript yang ditentukan akan dilancarkan dan bukannya membuka tapak projek.
Di satu pihak, masalahnya lebih bersifat spekulatif , memandangkan penyederhanaan melibatkan lokasi dalam direktori extensions.gnome.org, dan serangan itu bukan sahaja memerlukan pembukaan halaman tertentu tetapi juga mengklik pautan tersebut secara eksplisit. Sebaliknya, ada kemungkinan semasa proses pengesahan, moderator mungkin mahu pergi ke laman web projek, memintas borang pautan dan melaksanakan kod JavaScript dalam konteks akaun mereka.
Akhir sekali, jika anda berminat untuk mengetahui lebih lanjut, anda boleh mendapatkan butiran lanjut di pautan berikut.