Telegram Desktop Üzerinde ‘High-Risk’ RCE Güvelik Açığı


9 Nisan 2024 tarihinde Blockchain güvenlik girişimi CertiK tarafından, Telegram’ın masaüstü uygulamasının medya otomatik indirme özelliği nedeniyle risk oluşturduğunu söyledi ve her şey bu şekilde başladı.

Devamında bu haber hızlıca büyüdü ve Telegram açıklama yapmak durumunda kaldı.

 

Telegram bu iddaların büyük ihtimalle yalan olduğunu ve böyle bir zaafiyetin varlığını kabul etmediklerini söyleyerek herkesi bugbounty programına davet etme amaçlı bir link paylaştı.Böylelikle bu olay daha da büyük kesimlere yayıldı ve uzmanlarda kendi görüşlerini bildirmeye başladı.Bunlardan biri olan Polyzoa’nın kurucusu Kirill Tiufanov şu sözleri söyledi :

“Herhangi bir teknik ayrıntı vermedikleri için bu oldukça soyut bir varsayım. Teknik olarak herkes, riskli olabileceğinden bilinmeyen dosyaları indirmeyin diyebilir”

Buna rağmen CertiK yine de kullanıclara çağrı yaparak otomatik indirme özelliğini kapatmalarını tavsiye etti.

Peki siz değerli okurlar şu soruyu sorabilirsiniz : CerTiK bir kripto toplululuğu olmasına rağmen neden bu konu üzerinde çok duruyor?

 

Sebebini şu şekilde açıklayabiliriz;


Telegram, kripto para birimlerini desteklemiyor ancak kullanıcıların ve satıcıların dijital varlıklarla ödeme gönderip almaları için bir ağ geçidi olarak kullanmasına izin veriyor ve bu özelliği de telegramı kripto özelliklerini etkinleştiren az sayıdaki mesajlaşma sağlayıcısından biri haline getiriyor.

Devamında,11-12 Nisan tarihlerinde X ‘te zaafiyetle ilgili bir takım videolar düştü.

 

 

Telegram bu videoların ve olayın sonucunda dosyaya tıklanması gerektiğini ve bunun zero-click olmadığını söyleyerek kabul etmedi fakat python yorumlayıcısı için bir sorun teşkil ettiğini devamında ise güncelleme getirerek bu sorunu çözdüklerini dile getirdi.

 

Peki bu açığın sebebi neydi?

 

  • Bütün sorunun kaynağına indiğimizde çok küçük bir hatanın ne kadar büyük bir sonuçlara sebep olabileceğini anlıyoruz.Bu açığın oluştuğu nokta windows için python zipapp uzantısının yanlış girilmesinden kaynaklanıyor.Doğru uzantı “pyzw” iken geliştiricinin girmiş olduğu uzantı ise “pywz” böylelikle pywz uzantılı çalıştırlabilir dosya istemci üzerinde herhangi bir uyarı döndürülmeden çalışıyor

 

  • Aynı zamanda araştırmacılar, zararlı dosyayı maskelemek için bir telegram botu tasarlayarak yollanılan dosyanın türünü video/mp4 olarak değiştirmiş, paylaşılan dosyanın sanki videoymuş gibi kurban kullanıcıda görüntülenmesine neden olmuşlardır.

Görsellerden de anlaşıldığı üzere araştırmacılar basit bir script kullanarak cmd.exe’yi çalıştırmayı başarmışlardır.Daha da anlam kazanması adına yazılan kodu inceleyelim:

 

                               __import__(“subprocess”).call([“cmd.exe”])

 

Bu kod, Python’un  subprocess   modülünü __import__()   fonksiyonunu kullanarak doğrudan içe aktarır.Aynı zamanda  subprocess   modülü, dış işlemleri yönetmek için kullanılır(işletim sistemi komutları,başka bir programı çalıştırma vb.) bu nedenle kullanıcı tarafından sağlanan komutları çalıştırabilir.

 

Görselde ki gibi bir saldırganın cmd komut satırına erişmesi saldırganın saldırı vektörlerini keşfetmesine ve kullanmasına olanak sağlar,örneğin;

 

                              ♦ Dosya Sistemi Erişimi

                              ♦ Kötü Amaçlı Yazılım Yükleme

                              ♦ Yetki Yükseltme

 

Özetle bu zafiyetten faydalanan saldırganlar , uzaktan hedef bilgisayar üzerinde cmd komut satırı yetkisi alarak sistem kaynaklarını kötüye kullanabilir veya zararlı yazılım yükleyebilir.

 

 

 

Son durumda açık kapatıldı mı ?

  • Hata, 10 Nisan’da Telegram’a bildirildi ve ‘data_document_resolver.cpp’ kaynak kod dosyasındaki uzantı yazımını düzelterek sorunu düzelttiler fakat 4.16.4 ve daha eski sürümlerde bu sorunun varlığını söylemek yanlış olmaz.

 

  • Sadece python yüklü olan windows kullanıcılarının bu açıktan etkilenebileceğini de söylemeliyiz.

 

  • Güncellemeden sonra Telegram pyzw dosyalarına .untrusted uzantısını ekleyen sunucu taraflı bir düzeltme yaptı.Böylelikle tıklandığında Windows’un Python’da otomatik olarak başlatmak yerine bunları açmak için hangi programı kullanmak istediğinizi sormasına neden oldu.

 

 

Sonuç olarak,

Güncellemeyle birlikte bu sorunun önüne geçilmiş gibi gözüküyor fakat sorunu uzantı ekleyerek çözmek yerine daha güvenlik uyarıları içeren mesajların içermesi kullanıcılar adına daha güvenlik sağlayacaktır.

 

 

Kaynaklar :