kaniko'da kritik açık: CI/CD derlemesinin Azure Entra ID token'ı sahte ACR adreslerine gidebiliyor
Konteyner imajı derleme aracı kaniko'nun Azure Container Registry kimlik yardımcısındaki CVE-2026-105769 (CVSS 9.3), derlemenin Entra ID erişim token'ının ACR'ye benzeyen saldırgan kontrollü bir registry adresine gönderilmesine yol açıyor. Düzeltme 1.25.20'de.
CVE-2026-105769Kubernetes ve CI/CD hatlarında Docker daemon olmadan konteyner imajı derlemek için yaygın kullanılan kaniko'da kritik bir kimlik bilgisi sızıntısı açığı, CVE-2026-105769 kimliğiyle 2 Kasım'da kamuya açıklandı. Açık, Chainguard'ın sürdürdüğü kaniko çatalında 1.25.20 öncesindeki sürümleri etkiliyor; CVSS puanı 9.3. Kaynaklar arasında önem derecesi konusunda farklı değerlendirmeler de var.
Sorun, kaniko'nun Azure Container Registry (ACR) kimlik yardımcısındaki host adı doğrulamasında. Yardımcı, adresin gerçekten bir ACR registry'sine ait olup olmadığını yeterince sıkı denetlemiyor. Bu yüzden derleme, ACR'ye benzeyen ama saldırganın kontrol ettiği bir registry adresine yönlendirilirse ortamın Microsoft Entra ID erişim token'ı o adrese gönderilebiliyor. Ele geçirilen token, derleme kimliğinin Azure'daki yetkileriyle kullanılabilir. Açık CISA KEV kataloğunda yer almıyor ve aktif istismar bildirimi yok. Açığı Ağustos ayında bir araştırmacı bildirdi, düzeltme önce Go zafiyet veritabanına GO-2026-6225 olarak girdi.
Etkilenen ve düzeltilmiş sürümler
| Ürün | Etkilenen | Düzeltilmiş sürüm |
|---|---|---|
kaniko (chainguard-forks, github.com/chainguard-dev/kaniko) | 1.25.20 öncesi tüm sürümler | 1.25.20 |
Ayrıntılar ve düzeltme GHSA-5q7h-w9jf-cx97 bildiriminde yer alıyor. Google'ın arşivlenen özgün kaniko deposunu kullanan ekipler, kullandıkları imajın hangi kaynaktan geldiğini ayrıca doğrulamalı.
Beni etkiliyor mu?
Risk özellikle Azure üzerinde çalışan, ACR'ye imaj gönderen ve Entra ID ile (managed identity ya da workload identity) kimlik doğrulayan derleme hatlarında yüksek. Önce kaniko'yu nerede kullandığınızı ve hangi imaj etiketini çektiğinizi bulun:
grep -rn "kaniko" .gitlab-ci.yml .github/workflows/ Jenkinsfile
docker images
kubectl get pods -A -o wide | grep -i kanikoİmaj etiketi 1.25.20'den eskiyse ya da latest gibi sabitlenmemiş bir etiketse ortam etkilenebilir kabul edilmeli.
Ne yapılmalı?
- Derleme hatlarındaki kaniko imajını 1.25.20 ya da sonrasına yükseltin; etiketi sabit sürüme veya imaj özetine (digest) bağlayın.
- Derlemelerin hangi registry adreslerine imaj gönderip çektiğini gözden geçirin. Dışarıdan gelen değişkenlerle (merge request, parametreli job) hedef registry'nin değiştirilebildiği hatları kısıtlayın.
- Derleme kimliğine verilen Azure yetkilerini en az yetki ilkesine göre daraltın; ACR dışındaki kaynaklara gereksiz erişimi kaldırın.
- Entra ID oturum açma ve denetim kayıtlarında derleme kimliğinin beklenmeyen IP'lerden ya da beklenmeyen kaynaklara erişimini arayın. Şüpheli durumda kimliğin kimlik bilgilerini yenileyin.
- Yükseltmeyi CI/CD değişikliği olarak change management sürecine kaydedin ve ilk derlemelerin sorunsuz tamamlandığını doğrulayın.