CVE-2023-35947
Açıklama
Gradle, derleme otomasyonuna odaklanan ve çok dilli geliştirme desteği sunan bir derleme aracıdır. Etkilenen sürümlerde, Tar arşivleri açılırken Gradle, dosyaların açılma konumunun dışına yazılabileceğini kontrol etmemekteydi. Bu durum, Gradle işleminin yazma izinlerine sahip olduğu herhangi bir yerdeki önemli dosyaların üzerine yazılmasına yol açabilirdi. Bir Tar arşivinden Tar girişlerini okuyan bir derleme için bu sorun, rastgele dosya okuma yoluyla hassas dosyalardan bilgi ifşa edilmesine izin verebilirdi. Bu davranıştan yararlanmak için bir saldırganın, ya derleme tarafından halihazırda kullanılan bir arşivin kaynağını kontrol etmesi ya da derlemeyi kötü amaçlı bir arşivle etkileşime girecek şekilde değiştirmesi gerekir. Bunun fark edilmeden gerçekleşmesi düşük bir ihtimaldir. Bu güvenlik açığına karşı korunmak için Gradle 7.6.2 ve 8.2 sürümlerinde bir düzeltme yayınlanmıştır. Bu sürümlerden itibaren Gradle, bir Tar giriş adında path traversal öğeleri içeren Tar arşivlerini işlemeyi reddedecektir. Kullanıcıların yükseltme yapmaları önerilir. Bu güvenlik açığı için bilinen bir geçici çözüm yoktur. ### Etki Bu, Gradle'ın Tar arşivleriyle işlem gördüğü durumlarda ortaya çıkan ve genellikle ZipSlip'in bir varyantı olan TarSlip olarak adlandırılan bir path traversal güvenlik açığıdır. * Tar arşivleri açılırken Gradle, dosyaların açılma konumunun dışına yazılabileceğini kontrol etmemekteydi. Bu durum, Gradle işleminin yazma izinlerine sahip olduğu herhangi bir yerdeki önemli dosyaların üzerine yazılmasına yol açabilirdi. * Bir Tar arşivinden Tar girişlerini okuyan bir derleme için bu sorun, rastgele dosya okuma yoluyla hassas dosyalardan bilgi ifşa edilmesine izin verebilirdi. Bu davranıştan yararlanmak için bir saldırganın, ya derleme tarafından halihazırda kullanılan bir arşivin kaynağını kontrol etmesi ya da derlemeyi kötü amaçlı bir arşivle etkileşime girecek şekilde değiştirmesi gerekir. Bunun fark edilmeden gerçekleşmesi düşük bir ihtimaldir. Gradle, [Build Cache](https://docs.gradle.org/current/userguide/build_cache.html) özelliği için Tar arşivlerini kullanır. Bu arşivler Gradle tarafından oluşturulduğunda güvenlidir. Ancak bir saldırgan uzak bir derleme önbelleği sunucusunu kontrol edebilseydi, bu güvenlik açığından yararlanan kötü amaçlı derleme önbelleği girişleri enjekte edebilirdi. Uzak önbellek ile derleme arasında ortadaki adam (man-in-the-middle) saldırısı gerçekleştirilebilirse bu saldırı vektörü de kullanılabilirdi. ### Yamalar Bu güvenlik açığına karşı korunmak için Gradle 7.6.2 ve 8.2 sürümlerinde bir düzeltme yayınlanmıştır. Bu sürümlerden itibaren Gradle, bir Tar giriş adında path traversal öğeleri içeren Tar arşivlerini işlemeyi reddedecektir. Kullanıcıların yamalanmış bir sürüme yükseltmeleri önerilir. ### Geçici Çözümler Geçici bir çözüm bulunmamaktadır. * Derlemeniz tam olarak güvenmediğiniz Tar arşivleriyle işlem görüyorsa, bu güvenlik açığından yararlanmaya çalışmadıklarını onaylamak için onları incelemeniz gerekir. * Gradle uzak derleme önbelleğini kullanıyorsanız, yalnızca güvenilir tarafların buraya yazma erişimine sahip olduğundan ve uzak önbelleğe yapılan bağlantıların uygun şekilde güvence altına alındığından emin olun. ### Referanslar * [CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')](https://cwe.mitre.org/data/definitions/22.html) * [Gradle Build Cache](https://docs.gradle.org/current/userguide/build_cache.html) * [ZipSlip](https://security.snyk.io/research/zip-slip-vulnerability)
Nasıl düzeltilir
- gradle gradle7.6.2, 8.2.0 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| gradle gradle | v < 7.6.2, 8.0.0 ≤ v < 8.2.0 | 7.6.2, 8.2.0 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.