Argo CD'de 9.9 puanlı üç açık, yalnızca görüntüleme yetkisi olan bir kullanıcı repo-server'da komut çalıştırabiliyor
Kubernetes için GitOps aracı Argo CD'de aynı gün üç kritik açık yayımlandı. İkisi repo-server bileşeninde komut çalıştırmaya, biri bu bileşenin okuyabildiği her dosyayı okumaya izin veriyor. Saldırgan için bir uygulamayı yalnızca görüntüleme yetkisi yetiyor, depoya yazma ya da senkronizasyon yetkisi gerekmiyor.
- 3 dk okuma
- 4 kaynak
Kısaca
- Üç açık (
CVE-2026-113672,CVE-2026-113708,CVE-2026-113709) Jsonnet ve Kustomize ile manifest üretilirken ortaya çıkıyor. Repo-server'ın okuyabildiği depo kimlik bilgileri, service account token'ları ve özel anahtarlar açığa çıkabiliyor. - Düzeltmeler 3.3.15, 3.4.10, 3.5.4 ve 3.6.0-rc2 sürümlerinde. Bildirimlerde açıkların saldırılarda kullanıldığına dair bir bilgi yok.
Argo CD, Kubernetes ortamlarında uygulamaların Git deposundaki tanımlara göre otomatik olarak kurulmasını ve güncel tutulmasını sağlayan bir GitOps aracı. Bu işi yaparken depodaki Jsonnet, Kustomize ya da Helm dosyalarından Kubernetes manifestlerini argocd-repo-server adlı bileşen üretiyor. Repo-server, Git depolarına erişmek için gereken kimlik bilgilerini de tuttuğu için Argo CD’nin en hassas parçalarından biri.
20 Ekim’de yayımlanan üç açığın üçü de bu bileşende ve üçünün de CVSS puanı 9.9.
Üç açık
CVE-2026-113672: Jsonnet import ile dosya okuma. Repo-server .jsonnet dosyalarını işlerken import, importstr ve importbin komutlarını depo klasörüyle sınırlamıyor. Mutlak dosya yolları, ../ ile üst klasöre çıkma ya da depodaki sembolik bağlantılar kullanılarak, repo-server’ın okuyabildiği her dosya açılabiliyor. Bunlar arasında /proc/self/environ, Kubernetes service account token’ları, bağlanmış özel anahtarlar ve depo kimlik bilgileri var. Oluşturulan Secret’lar gizleniyor, ama okunan içerik bir ConfigMap’e konursa saldırgana geri dönüyor. importstr ile /dev/zero gibi bitmeyen bir aygıt okutularak repo-server’ın belleği de tüketilebiliyor. 0.9.0’dan itibaren bütün sürümler etkileniyor.
CVE-2026-113708: Kustomize uzak referansıyla komut çalıştırma. Kustomize, uzak kaynak adreslerindeki ref ya da version değerlerini git fetch komutuna, seçeneklerin bittiğini gösteren ayırıcı olmadan aktarıyor. Tire ile başlayan bir değer --upload-pack seçeneği gibi yorumlanabiliyor ve uzak adres file:// gibi yerel bir yöntem kullandığında repo-server içinde komut çalıştırıyor. https:// adresleri için git bu komutu çalıştırmıyor. Yerel yöntem pod’un dışına çıkmadığı için repo-server’ın dış trafiğini engellemek bu saldırıyı önlemiyor. Kustomize’ı daha yeni bir sürümle değiştirmek de tek başına sorunu çözmüyor. 2.7.0’dan itibaren etkileniyor.
CVE-2026-113709: Kustomize Helm ayar klasörüyle komut çalıştırma. Yönetici Kustomize için --enable-helm seçeneğini açtıysa, helmGlobals.configHome değeri Helm’in ayar klasörünü depodaki bir klasöre yönlendirebiliyor. Helm, <configHome>/.data/plugins altındaki bir indirme eklentisini ayrıca kurulum gerektirmeden yüklüyor ve bir helmCharts deposu bu eklentinin protokolünü kullandığında programını repo-server içinde çalıştırıyor. --enable-helm açık değilse kurulum etkilenmiyor. 2.1.0’dan itibaren etkileniyor.
Saldırı için gereken yetki
Üç açık için de iki yol var. Birincisi, Argo CD’nin izlediği bir Git deposuna zararlı dosya göndermek. İkincisi daha dikkat çekici: dosyaları POST /api/v1/applications/manifestsWithFiles API’si ile yüklemek. Bu API, argocd app diff --local --server-side-generate komutuyla da kullanılıyor. Bildirimlere göre bu yol için var olan bir uygulama üzerinde yalnızca görüntüleme (get) yetkisi yetiyor. Uygulamayı güncelleme, senkronize etme ya da depoya yazma yetkisi gerekmiyor.
Komutlar repo-server kullanıcısı olarak çalışıyor ve bu kullanıcının erişebildiği depo kimlik bilgilerini ve diğer verileri okuyabiliyor. Çıktı, manifest üretim hatalarının içinde saldırgana geri dönebiliyor.
Etkilenen ve düzeltilmiş sürümler
| Açık | Etkilenen | Düzeltilmiş |
|---|---|---|
CVE-2026-113672 |
0.9.0 ve sonrası | 3.3.15, 3.4.10, 3.5.4, 3.6.0-rc2 |
CVE-2026-113708 |
2.7.0 ve sonrası | 3.3.15, 3.4.10, 3.5.4, 3.6.0-rc2 |
CVE-2026-113709 |
2.1.0 ve sonrası (--enable-helm açıksa) |
3.3.15, 3.4.10, 3.5.4, 3.6.0-rc2 |
Önerilen önlemler
- Argo CD’yi kullandığınız sürüm koluna göre 3.3.15, 3.4.10, 3.5.4 ya da 3.6.0-rc2 sürümüne yükseltin.
- Hemen yükseltemiyorsanız, uygulamalar üzerinde görüntüleme yetkisi olan hesapları gözden geçirin. Bu açıklarda görüntüleme yetkisi saldırı için yeterli.
- Kustomize için
--enable-helmseçeneğini gerçekten ihtiyacınız yoksa kapalı tutun. - Argo CD belgeleri, kullanılmayan yerleşik araçların (Jsonnet gibi) kapatılmasını da anlatıyor.
Kaynaklar
- Argo CD güvenlik bildirimi, Jsonnet import (GHSA-m3vr-7329-44ww)github.com (başka siteye gider)
- Argo CD güvenlik bildirimi, Kustomize remote ref (GHSA-9v9p-x54c-58gc)github.com (başka siteye gider)
- Argo CD güvenlik bildirimi, Kustomize Helm config home (GHSA-fw5c-w8rc-j7fx)github.com (başka siteye gider)
- Argo CD v3.3.15 sürüm notlarıgithub.com (başka siteye gider)
Bu konuda
- KritikYeni
Zafiyet · 4 dk
Citrix NetScaler'da 28 açık kapatıldı, biri varsayılan kurulumları da etkiliyor
- YüksekYeni
Zafiyet · 3 dk
PostgreSQL'de 52 açık kapatıldı, PostgreSQL 14'ün desteği sona erdi
- KritikYeni
Zafiyet · 2 dk
Chrome 157 güncellemesi beşi kritik 83 güvenlik açığını kapattı