Popüler Kubernetes dağıtım aracı Argo CD'de, repo-server bileşeninde henüz yamalanmamış kritik bir güvenlik açığı keşfedildi. Synacktiv araştırmacıları tarafından bulunan bu açık, saldırganların repo-server'ın iç ağ portuna erişmeleri halinde kimlik doğrulaması olmadan kod çalıştırmalarına izin veriyor. Açığın, Kubernetes kümesinin tamamen ele geçirilmesine yol açabileceği belirtiliyor. Argo CD'nin bakımcılarına Ocak 2025'te bildirilen hata, yaklaşık on sekiz ay sonra hala düzeltilmedi ve Synacktiv kullanıcıları uyarmak için detayları kamuoyuyla paylaştı.
Açık, Argo CD'nin Git depolarını okuyup Kubernetes manifest dosyalarını oluşturan repo-server bileşeninde yer alıyor. Bileşenin iç gRPC hizmeti, kimlik doğrulaması gerektirmiyor; bu porta erişebilen herkes, özel hazırlanmış bir istek göndererek komut çalıştırabiliyor. Synacktiv, saldırıyı Argo CD v2.13.3 üzerinde gösterdi ve yamalı bir sürüm bulunmadığını rapor etti. Araştırmacılar, kustomize aracının --helm-command seçeneğini kullanarak saldırganın kontrolündeki bir Git deposundan çekilen betiğin çalıştırılabileceğini keşfetti. Kustomize normalde helm ikili dosyasını çağırırken, bu seçenek değiştirilerek saldırganın betiği çalıştırılıyor.
Ancak 'iç' ağ, varsayılan olarak izole değil. Argo CD, repo-server'ı yalnızca kendi bileşenlerine izin verecek şekilde Kubernetes ağ politikaları sunuyor. Synacktiv, Argo CD'yi kurmak için yaygın olarak kullanılan Helm chart'ının bu politikaları varsayılan olarak devre dışı bıraktığını tespit etti (networkPolicy.create: false). Bu durumda, kümedeki tek bir pod'u ele geçiren saldırgan repo-server'a erişip açığı tetikleyebiliyor. Synacktiv, repo-server'da kod çalıştırdıktan sonra Redis şifresini ortam değişkeninden okuyarak Argo CD'nin Redis önbelleğine bağlandı ve dağıtım verilerini zehirledi. Bir sonraki otomatik senkronizasyonda Argo CD, saldırganın sağladığı iş yükünü dağıttı.
Sonuç ve Değerlendirme
Bu adım, daha önce Cycode tarafından keşfedilen ve Argo CD'nin Redis'inin şifresiz olması nedeniyle herhangi bir pod'un dağıtım önbelleğini zehirlemesine izin veren CVE-2024-31989 açığını yeniden canlandırıyor. Argo CD, Redis şifresi ekleyerek bu açığı kapatmıştı ancak önbellek hala imzalanmadığı için şifrenin çalınması aynı saldırıyı mümkün kılıyor. Şu an için yamalı bir sürüm bulunmadığından, savunma ağ izolasyonuna dayanıyor. Kubernetes ağ politikalarının etkinleştirilmesi ve yalnızca Argo CD bileşenlerinin repo-server ve Redis portlarına erişebilmesi sağlanmalı. Synacktiv, saldırıyı otomatikleştiren argo-cdown aracını şimdilik savunmacılara zaman tanımak için yayımlamadı ancak daha sonra GitHub'da kullanıma sunmayı planlıyor.