Son zamanlarda IB araştırmacısı Masato Kinugawa, discord uygulamasının masaüstü sürümünde keyfi kodun uzaktan yürütülmesine yol açan çeşitli güvenlik açıklarından (ve bunlara yönelik istismarlardan) çalışan bir zincir oluşturmayı nasıl başardığını anlattı.
İlk hata, Discord’un masaüstü sürümü tarafından kullanılan Electron çerçevesinde bulundu. Discord’un kendisi bir opensor uygulaması olmasa da, Electron kullanan JavaScript kodu yerel olarak saklanır, alınabilir ve araştırılabilir. Araştırmacı, Discord için electron ayarlarından birinin (contextİsolation) false (kapalı) olarak ayarlandığını ve bu durumun harici JavaScript kodunun iç kodu, örneğin node.js işlevini etkilemesine izin verdiğini buldu.
“Electron, Web sayfalarının dışındaki Javascript kodunun Node.js kullanmasına izin verdiği için bu tür davranışlar tehlikelidir. Nodeıntegration.js bağımsızdır, bu da nodeıntegration false olarak ayarlanmış olsa bile, keyfi kodun uzaktan yürütülmesine neden olabilir.” diye açıklıyor Kinugawa.
Discord Iframe’de Bir XSS Hatası Bulundu!
Kaşif şimdi uygulamada JavaScript’i çalıştırmanın bir yoluna ihtiyaç duyduğundan, bu sohbette video görüntülemek için kullanılan iframe’de bir XSS hatası bulmasına neden oldu (örneğin, youtube’dan bir bağlantı eklendiğinde oluşur). Böylece Kinugawa, 3D içeriği izlemek için tasarlanmış bir çözüm olan Sketchfab’a ulaştı. Sketchfab Discord beyaz listeye alınmış ve bir iframe içine gömülebilir ve DOM XSS hatasıdır.
Bu hata, Kinugawa’nın İframe’de JavaScript yürütmesine izin verdi, ancak discord’un masaüstü sürümünde kodu çalıştırmadı. Sonunda, saldırısını daha da geliştirmeye çalışan Kinugawa, will-navigate etkinliğiyle ilgili Electron’daki kısıtlamaları atlamanın bir yolunu buldu. Bu güvenlik açığı CVE-2020-15174 kimliğini aldı. Yukarıda açıklanan diğer iki hata ile birleştiğinde, sonunda uzmanın Discord’a bir RCE saldırısı yapmasına izin verdi.
Discord, Kinugawa’yı Ödüllendirdi!
Uzman, araştırmasının sonuçlarını resmi bug bounty Discord programına aktardı ve şu anda geliştiriciler sketchfab’ın gömülmesini devre dışı bıraktılar ve iframe için bir sanal alan eklediler. Masato Kinugawa, discord’dan keşfedilen güvenlik açıkları için 5.000 $ ‘ lık bir ödül aldı ve ayrıca XSS keşfi için sketchfab yazarlarından 300 dolar daha aldı.