BatBadBut: Windows'ta, örneğin Rust'ta, komut kaçakçılığında kritik boşluk

bencede

New member
Rust bakımcıları programlama dilinin ve ilgili araçların 1.77.2 sürümünü yayımladı. Windows'taki Rust standart kütüphanesindeki bir güvenlik açığını kapatır. Ancak sorun daha da ileri gidiyor: Temeldeki güvenlik açığı, onu keşfeden kişi tarafından BatBadBut olarak adlandırıldı.

Duyuru



Rust 1.77.2 duyurusunda geliştiriciler, sürümün CVE-2024-24576 adlı güvenlik açığını CVSS değeriyle kapattığını yazıyor. 10.0 10 üzerinden risk”eleştirmen“. Rust Standart Kitaplığı, dosya uzantılarına sahip toplu iş dosyalarıyla uğraşırken bağımsız değişkenleri düzgün şekilde filtrelemiyor .bat VE .cmd olarak adlandırılabilir. Rust güvenlik ekibinin güvenlik açığına ilişkin en detaylı açıklamasında, çağrılan işlemlere iletilen argümanları kontrol edebilen saldırganların, daha sonra filtrelemeyi atlayarak rastgele kabuk komutları çalıştırabileceği açıklanıyor.

BatBadBut: Windows komutları güvenli bir şekilde çağrılamıyor


Windows altında Rust kullanan herkes bunu arayarak yapabilir. rustup update stable Yüklü Rust sürümünüzü 1.77.2 veya sonraki bir sürüme yükseltin. Hata yalnızca Windows'u etkiler. Flatt Security'den BT araştırmacısı RyotaK, temeldeki güvenlik açığını keşfetti. Ayrıntıları bir analizle açıklayın.

Başlığın kendisi sorunu ortaya koyuyor: Windows'ta komutları güvenli bir şekilde çalıştıramazsınız, diye yazıyor orada. İşleve dolaylı olarak erişen Windows uygulamaları CeateProcess() belirli koşullar altında güvenlik açığını tetikleyebilir. İşlev sırayla çağırır cmd.exe dosyalar gruplandırılırken yanar .bat, .cmd ve benzeri çalışmalar yapılmalıdır.

cmd.exe komut argümanları için karmaşık işleme kurallarına sahiptir. Programlama dilleri argümanları yeterince filtrelemez. Bu, saldırganların bir toplu iş dosyasındaki komut bağımsız değişkenlerinin bölümlerini kontrol etmeleri durumunda komutları enjekte etmesine olanak tanır. Bu yalnızca toplu iş dosyalarında olur .exeancak dosyalar hayır.

Bu nedenle, güvenlik açığı değerlendirmesinin CVSS değeri bireysel uygulamalara doğrudan uygulanamaz ve yararlanılması için çeşitli koşulların karşılanması gerekir. Uygulamanın Windows'ta bir komut yürütmesi gerekir; bir dosya uzantısına sahip olmamalıdır veya .bat sırasıyla .cmd belirtmek. Yürütülecek komut, çağrı bağımsız değişkenlerinin bir parçası olarak kullanıcı tarafından kontrol edilen girişi içermelidir ve sonuçta programlama dili, bağımsız değişkenleri doğru şekilde filtrelemede başarısız olmalıdır. Analizde RyotaK daha da ayrıntıya giriyor.

Rust'un yanı sıra diğer programlama dilleri de etkilendi. RyotaK aşağıdaki dillerden ve hata düzeltme durumlarından bahseder:

  • Erlang: Dokümantasyon güncellemesi
  • Git: dokümantasyon güncellemesi
  • Haskell: Yama mevcut
  • Java: Planlanmış bir hata düzeltmesi yok
  • Node.js: Yama geliştiriliyor
  • PHP: yama geliştiriliyor
  • Python: Belge güncellemesi
  • Ruby: dokümantasyon güncellemesi
  • Pas: Yama mevcut
Geliştiriciler ortamlarını güncellemelidir. Çalışma zamanı ortamları veya Rust gibi güvenlik açığı bulunan standart bir kütüphane sağlıyorlarsa, kurulum paketlerini de güncellemeli ve kullanıcılarını güncellemeler konusunda bilgilendirmelidirler. Kaşif, mezhebi şu şekilde açıklıyor: diye sorduch dosyası e banyo, Ancak en kötüsü değil.” – “Bu bir toplu iş dosyası ve kötü, ama en kötüsü değil.”


(Bilmiyorum)



Haberin Sonu
 
Üst