CVE-2023-30853
Açıklama
Gradle Build Action, kullanıcıların GitHub Actions iş akışlarında bir Gradle Build yürütmelerine olanak tanır. Versiyon 2.4.2 öncesindeki Gradle Build Action'ı kullanan ve Gradle Build Tool'u yapılandırma önbelleği (configuration cache) etkin şekilde çalıştıran GitHub iş akışlarını etkileyen bir güvenlik açığı, depo için yapılandırılmış gizli bilgilerin (secrets) potansiyel olarak ifşa olmasına neden olabilir. GitHub Actions için yapılandırılan gizli bilgiler normalde ortam değişkenleri aracılığıyla Gradle Build Tool'a aktarılır. Gradle Build Tool'un bu ortam değişkenlerini kaydetme biçimi nedeniyle, bu bilgiler GitHub Actions önbelleğindeki bir girdide kalıcı hale gelebilir. GitHub Actions önbelleğinde saklanan bu veriler, bir geliştirici tarafından depo çatallaması (fork) yoluyla gönderilen bir Pull Request için çalışanlar gibi güvenilmeyen bir bağlamda çalışan bir GitHub Actions iş akışı tarafından okunabilir. Bu güvenlik açığı, kod incelemesi yoluyla dahili olarak keşfedilmiştir ve gerçek dünyada istismar edildiğine dair herhangi bir kanıt görülmemiştir. Bununla birlikte, Gradle Build Action sürümünü yükseltmeye ek olarak, etkilenen kullanıcılar potansiyel olarak savunmasız tüm önbellek girişlerini silmeli ve potansiyel olarak etkilenen gizli bilgileri döndürmeyi seçebilirler. Gradle Build Action v2.4.2 ve daha yeni sürümleri artık bu hassas verileri daha sonra kullanılmak üzere kaydetmeyerek, GitHub Actions Önbelleği üzerinden devam eden gizli bilgi sızıntısını önlemektedir. Gradle Build Action'ın en son sürümüne yükseltmek bundan sonrası için gizli bilgilerin sızmasını önleyecektir ancak mevcut veya önceki GitHub Actions Önbelleği girişlerinin bu bilgileri içermesi nedeniyle ek işlemler gerekebilir. Mevcut önbellek girişleri, zorla silinene kadar veya 7 gün boyunca kullanılmadıkları takdirde doğal olarak sona erene kadar savunmasız kalmaya devam edecektir. Potansiyel olarak savunmasız girişler, GitHub arayüzünde anahtarı `configuration-cache-*` ile eşleşen bir önbellek girişi aranarak kolayca tanımlanabilir. Sorumlular, Gradle Build Action kullanıcılarının önbellek girişleri listesini incelemelerini ve bu desenle eşleşenleri manuel olarak silmelerini önermektedir. Sorumlular bu güvenlik açığının istismar edildiğine dair herhangi bir kanıt görmemiş olsa da, bunların tehlikeye girmediğinden emin olamıyorsanız tüm depo gizli bilgilerinin değiştirilmesini önermektedir. Bir kullanıcının bu verileri istismar etmeye çalışan bir pull request için GitHub Actions iş akışını çalıştırması durumunda ihlal meydana gelebilir. Bir pull request'te dikkat edilmesi gereken uyarı işaretleri şunlardır: - GitHub Actions iş akışı dosyalarında, Gradle User Home veya `<project-root>/.gradle` dizinlerinden veri okumaya/çıkarmaya çalışabilecek değişiklikler yapılması. - Gradle derleme dosyalarında veya bir GitHub Actions iş akışı tarafından çağrılabilecek diğer yürütülebilir dosyalarda, bu konumlardan bilgi okumaya/çıkarmaya çalışacak değişiklikler yapılması. Bu güvenlik açığının etkisini sınırlamak için bazı geçici çözümler mevcuttur: - Eğer Gradle projesi yapılandırma önbelleğini (configuration cache) kullanmayı seçmemişse, savunmasız değildir. - Eğer Gradle projesi varsayılan olarak yapılandırma önbelleğini kullanmayı seçmişse, bu özelliği bir GitHub Actions iş akışında devre dışı bırakmak için `--no-configuration-cache` komut satırı argümanı kullanılabilir. Her durumda, kullanıcıların GitHub Actions iş akışlarının yürütülmesini onaylamadan önce her türlü pull request'i dikkatlice incelemelerini öneririz. Harici katkıda bulunanlardan gelen tüm PR'lar için onay gerektirmek ihtiyatlı olacaktır.
Nasıl düzeltilir
- gradle build_action2.4.2 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| gradle build_action | v < 2.4.2 | 2.4.2 |
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.