Platform perpesanan instan dan VoIP populer, Discord, memiliki kerentanan di aplikasi desktopnya yang terbuka untuk serangan eksekusi kode jarak jauh (RCE). Pertama kali diungkapkan oleh pemburu bug bounty Masato Kinugawa, RCE dapat dieksploitasi untuk mengambil alih komputer korban.
Kinugawa pertama kali mendeteksi kerentanan beberapa bulan lalu dan melaporkannya melalui program bug bounty Discord. Dalam deskripsi detail di blognya, dia mengatakan kerentanan tersebut merupakan kombinasi dari beberapa bug – tidak ada contextIsolation, XSS di sematan iframe, dan bypass pembatasan navigasi.
Penyebab utama bug adalah Electron, kerangka kerja perangkat lunak sumber terbuka yang membantu dalam membuat aplikasi lintas platform menggunakan CSS, JavaScript, dan HTML. Aplikasi perpesanan desktop Discord bukan open source tetapi memiliki kode JavaScript yang digunakan Electron. Kode disimpan secara lokal.
Dia menambahkan bahwa ketika dia mencoba menemukan cara untuk mengeksekusi JavaScript di aplikasi Electron, dia menemukan cacat cross-site scripting (XSS) di iframe. Ini digunakan untuk menyematkan video yang dapat ditampilkan dalam obrolan atau halaman web.
Ketika peneliti memeriksa domain di iframe, dia menemukan Sketchfab yang memungkinkan tampilan konten 3D di halaman web. Meskipun Sketchfab dapat disematkan di iframe, ia menemukan kerentanan XSS berbasis DOM (Document Object Model) di halaman sematan yang dapat disalahgunakan.
Berikut adalah video dimana Masato Kinugawa, dengan menggabungkan tiga bug yang ia temukan, dapat mencapai RCE.