Rust programlama dilinin sahipleri, kötü niyetli bir tarafın dosyaları ve dizinleri savunmasız bir sistemden yetkisiz bir şekilde temizlemek için kötüye kullanılabilecek yüksek önem derecesine sahip bir güvenlik açığı için bir güvenlik güncellemesi yayınladı.
Rust Security Response çalışma grubu (WG) “Bir saldırgan, bu güvenlik sorununu ayrıcalıklı bir programı kandırarak saldırganın başka türlü erişemeyeceği veya silemeyeceği dosya ve dizinleri silmesi için kullanabilir.” söz konusu içinde danışma 20 Ocak 2021 tarihinde yayınlandı.
Rust 1.0.0 ile Rust 1.58.0 arası bu güvenlik açığından etkilenir. olarak izlenen kusur, CVE-2022-21658 (CVSS puanı: 7.3), güvenlik araştırmacısı Hans Kratz’a atfedildi ve ekip bir düzeltme yayınladı. Pas sürümü 1.58.1 geçen hafta gönderildi.
Spesifik olarak sorun, sembolik bağların (diğer adıyla sembolik bağların tekrar tekrar silinmesini önlemek için yanlış uygulanan bir kontrolden kaynaklanmaktadır. sembolik bağlantılar) “std::fs::remove_dir_all” adlı standart bir kitaplık işlevinde. Bu, bir yarış kondisyonusırayla, hassas dizinleri silmek için ayrıcalıklı bir programa erişimlerini kötüye kullanarak bir düşman tarafından güvenilir bir şekilde kullanılabilir.
“Sisteme sembolik bağlantıları izlememesini söylemek yerine, standart kitaplık önce silmek üzere olduğu şeyin bir sembolik bağlantı olup olmadığını kontrol etti ve aksi takdirde dizini tekrar tekrar silmeye devam edecek” dedi. “Bu, bir yarış durumunu ortaya çıkardı: bir saldırgan bir dizin oluşturabilir ve bunu kontrol ile gerçek silme arasında bir sembolik bağlantıyla değiştirebilir.”
Rust, yaygın olarak kullanılan bir programlama dili olmasa da, bellekle ilgili güvenlik garantileri nedeniyle son yıllarda benimsenmesinde bir artışa tanık oldu. Geçen yıl Google, Android işletim sisteminin açık kaynaklı sürümünün bellek güvenlik hatalarını önlemek için programlama diline destek ekleyeceğini duyurdu.