Rust projeleri için kullanılan Kargo paketi yöneticisindeki güvenlik açıkları

Rust dilinde paketleri yönetmek ve proje oluşturmak için kullanılan Kargo paket yöneticisinde, üçüncü taraf depolardan özel tasarlanmış paketler indirilirken yararlanılabilecek iki güvenlik açığı tespit edildi (resmi Crates.io deposu kullanıcılarının sorundan etkilenmez). İlk güvenlik açığı (CVE-2022-36113), mevcut izinler izin verdiği sürece herhangi bir dosyanın ilk iki baytının üzerine yazılmasına izin veriyor. İkinci güvenlik açığı (CVE-2022-36114) disk alanını tüketmek için kullanılabilir.

Güvenlik açıkları, 1.64 Eylül'de yayınlanması planlanan Rust 22 sürümünde düzeltilecek. Benzer zararlar, pakette sağlanan montaj komut dosyaları veya prosedür makrolarından özel işleyicileri başlatmaya yönelik standart yetenek kullanılarak üçüncü taraf depolardan gelen doğrulanmamış paketler kullanıldığında da ortaya çıkabileceğinden, güvenlik açıklarına düşük düzeyde bir önem derecesi atanır. Aynı zamanda yukarıda belirtilen sorunlar, paketin indirildikten sonra (montaj yapılmadan) açılması aşamasında istismar edilmesi bakımından farklılık göstermektedir.

Özellikle, bir paketi indirdikten sonra, kargo, içeriğini ~/.cargo dizinine açar ve paketin başarıyla açıldığının işaretini .cargo-ok dosyasında saklar. İlk güvenlik açığının özü, paketi oluşturucunun içine .cargo-ok adında sembolik bir bağlantı yerleştirebilmesi ve bu bağlantının işaret ettiği dosyaya “ok” metninin yazılmasına yol açabilmesidir.

İkinci güvenlik açığı, arşivden çıkarılan ve "zip bombaları" oluşturmak için kullanılabilecek veri boyutuna ilişkin bir sınırlamanın bulunmamasından kaynaklanmaktadır (arşiv, zip formatı için maksimum sıkıştırma oranına ulaşmayı sağlayan verileri içerebilir - yaklaşık 28 milyon kez, bu durumda, örneğin özel olarak hazırlanmış 10 MB'lık bir zip dosyası, yaklaşık 281 TB verinin sıkıştırmasının açılmasıyla sonuçlanacaktır).

Kaynak: opennet.ru

Yorum ekle