Terminal öykünücülerinde ANSI çıkış karakterleriyle yapılan deneyler, Windows terminallerinde ve Chrome tabanlı web tarayıcılarında birden çok yüksek önemde DoS (hizmet reddi) güvenlik açığının keşfedilmesine yol açtı.
CyberArk’ta güvenlik araştırmacısı olan Eviatar Gerzi, çeşitli potansiyel kötüye kullanım yollarını denedi. eski 2003 tavsiyesi pencere başlığı değişiklikleri yoluyla kod yürütme konusunda ve PuTTY’de hızlı pencere başlığı değişikliklerini tetiklemenin bir yolunu keşfetti.
Bu atipik saldırı, test makinesinin fare imleci dışında her şeyin donduğu “Beyaz Ölüm Ekranı” olarak bilinen bir duruma girmesine neden oldu.
Yerel bir uygulamaya benzer bir saldırıyı test ettikten sonra, işletim sistemi çekirdeğinin çağrılarla aşırı yüklenmesi nedeniyle sistem hemen WSOD’ye girdi.
Kötüye kullanılan işlev ‘SetWindowText,’ belirtilen pencerenin başlık çubuğunun metnini değiştirmeye izin verir.
WSOD durumundan çıkmanın tek yolu bilgisayarı yeniden başlatmaktır, bu nedenle bu basit numara bir dizi uygulamada DoS durumuna yol açabilir.
Olarak araştırmacı işaret ediyor‘SetWindowText’, MobaXterm örneğinde keşfedildiği gibi, kapanmalar için olası tek kaldıraç değildir.
Vakalardan birinde, MobaXterm terminalini test ettim ve pencere başlığını değiştirmek için SetWindowText işlevini kullanmamasına şaşırdım, bunun yerine GdipDrawString.
Bu durumda ilginç olan şey, SetWindowText gibi tüm bilgisayarı etkilememiş olmasıdır. Yalnızca, sonunda çöken uygulamayı etkiledi.
Gerzi, aşağıdaki Windows terminallerinin DoS sorunundan etkilendiğini onayladı:
- Macun – CVE-2021-33500 (tüm bilgisayarı dondurur), 0.75 sürümünde düzeltildi
- MobaXterm – CVE-2021-28847 (yalnızca uygulamayı dondurur), sürüm 21.0 önizleme 3’te düzeltildi
- MinTTY (ve Cygwin) – CVE-2021-28848 (tüm bilgisayarı dondurur), 3.4.6 sürümünde düzeltildi
- Git – 2.30.1 sürümünde düzeltilen MinTTY’yi kullanır
- ZOC – CVE-2021-32198 (yalnızca uygulamayı dondurur), düzeltme yok
- XSHELL – CVE-2021-42095 (tüm bilgisayarı dondurur), 7.0.0.76 sürümünde düzeltildi
Web tarayıcılarında denemek
Hemen hemen tüm GUI uygulamalarının SetWindowText işlevini kullandığını fark eden araştırmacı, saldırıyı Chrome gibi popüler web tarayıcılarına karşı denedi.
Başlığın sonsuz bir döngüde hızla değişmesine neden olacak ve tarayıcıyı donmaya zorlayacak bir HTML dosyası oluşturdu.
Aynı davranış, tüm Chromium tabanlı tarayıcılar olan Edge, Torch, Maxthon, Opera ve Vivaldi’de de fark edildi. Firefox ve Internet Explorer buna karşı bağışık olsa da, yine de bir performans darbesi alıyorlar.
Ancak her durumda, modern tarayıcılar sanal alanlara dayalı olduğundan, temeldeki işletim sistemi etkilenmez.
Ancak, sanal bir makine içinde tarayıcı saldırısını denerken, sanallaştırılmış sistemin bir ‘Ölümün Mavi Ekranı’ görüntülemesine neden olan bir kaynak tükenme sorunu oluştu.
Satıcılardan yanıt
Araştırmacı, bu saldırıdan etkilenen uygulamaların SetWindowText veya GdipDrawString kullanan herhangi bir şey olabileceğini, dolayısıyla yukarıdaki uygulamaların etkilenen yazılımın yalnızca bir örneği olduğunu belirtiyor.
Örneğin Slack gibi bazı uygulamalar, işlevlerin çağrılarında bir hız sınırlayıcıya sahiptir, bu nedenle bu tür DoS saldırılarına karşı dirençlidirler.
Gerzi, etkilenen satıcılarla iletişime geçti ve aşağıdaki yanıtları aldı:
Google: DoS sorunları, güvenlik açıklarından ziyade kötüye kullanım veya kararlılık sorunları olarak değerlendirilir. Not: Sorun Mac’te görülmez, ancak Linux’ta gözlemlenir. Konuyu tekrar gözden geçirdik. WS 16.1.2 build-17966106 ve Chrome 92.0.4515.131’in en son sürümlerinde çökmeyi yeniden oluşturamadık. Bizim tarafımızda herhangi bir BSOD sorunu görmediğimiz için, gözlemlediğiniz davranışın kullanılan krom sürümüne bağlı olabileceğini düşünüyoruz. Bu nedenle, bunu bir hata olarak kabul etmiyoruz.
Vivaldi: Bu, Windows 10’un bir tasarım sınırlamasıdır; uygulama belleği kullanımını sınırlamaz ve RAM’i bittiğinde yalnızca disk belleği dosyasını (sanal bellek) kullanır. Diskten okunması gerektiğinden bunun yanıt vermesi daha yavaştır.
Microsoft: Ekibimiz bu sorunu yeniden oluşturabildi, ancak acil bir güvenlik güncellemesi ile hizmet verme çıtamızı karşılamıyor. Bu, hizmet reddi durumuyla sonuçlansa da, bu yalnızca yerel olarak tetiklenebilir ve kaynak tükenmesinin bir sonucudur. Saldırgan, ek güvenlik açığı durumlarını tetikleyemez veya sistemdeki diğer saldırılarda faydalı olacak bilgileri alamaz. Bu vakayı kapatacağız, ancak geliştirme ekibimizle bir hata açtık ve bunu Windows’un gelecekteki bir sürümünde ele almayı düşünebilirler.
Yukarıdakilere yanıt olarak araştırmacı, uzak bir sunucuda kötü amaçlı bir dosya oluşturarak ve onu savunmasız bir terminalden açarak saldırıyı uzaktan tetiklemenin mümkün olduğuna dikkat çekiyor.