Kubero'da CVSS 9.8'lik açık, JWT_SECRET tanımlı değilse herkes yönetici token'ı üretebiliyor
Kubernetes üzerinde Heroku benzeri PaaS sunan açık kaynak Kubero'nun 3.0.0–3.1.1 sürümlerinde, JWT_SECRET ortam değişkeni tanımlı değilse kod içindeki sabit yedek anahtar kullanılıyor (CVE-2026-125370). Düzeltilmiş sürüm henüz yok.
CVE-2026-125370Kubernetes kümelerinde uygulama ve pipeline yönetimi için kullanılan açık kaynak PaaS aracı Kubero'da kritik bir kimlik doğrulama atlatma açığı yayımlandı. NVD ve VulnCheck kayıtlarına göre CVE-2026-125370 (CVSS 9.8), JWT_SECRET ortam değişkeni tanımlanmadığında sunucunun koda gömülü sabit bir yedek imzalama anahtarına dönmesinden kaynaklanıyor.
Kayda göre sorun iki adımlı. Sabit anahtar herkesin bildiği bir değer olduğu için, kimliği doğrulanmamış bir saldırgan istediği rol, kullanıcı grubu ve yetki bilgisini içeren bir token imzalayabiliyor. Sunucudaki JwtStrategy.validate() da bu bilgileri veritabanına bakmadan kabul ediyor. Sonuçta pipeline'lar, uygulamalar, kullanıcılar ve API token'ları saldırganın kontrolüne geçebiliyor. Kubero, bağlı olduğu Kubernetes kümesinde iş yükü oluşturabildiği için etki, yalnızca panelle sınırlı kalmayabilir. Açık CISA KEV kataloğunda yok; istismar bildirimi de yok.
Etkilenen ve düzeltilmiş sürümler
| Ürün | Etkilenen | Düzeltilmiş sürüm |
|---|---|---|
| Kubero | 3.0.0 – 3.1.1 | Henüz yok; GitHub kaydında yamalı sürüm belirtilmemiş |
Projenin son yayımlanan sürümü Eylül 2025 tarihli v3.1.1. Gelişmeler için Kubero sürüm sayfasını ve proje kaydını takip edin.
Beni etkiliyor mu?
- Kubero 3.x kullanıyorsanız ve
JWT_SECRETdeğişkenine kendi değerinizi vermediyseniz açık sizi doğrudan etkiliyor. - Değişkenin tanımlı olup olmadığını salt okunur olarak kontrol edebilirsiniz:
kubectl get deploy -n kubero -o yaml | grep -n JWT_SECRETvekubectl get secret -n kuberoçıktılarına bakın. Namespace adı kurulumunuza göre farklı olabilir. - Çalışan sürümü
kubectl get deploy -n kubero -o jsonpath='{..image}'çıktısındaki imaj etiketinden okuyabilirsiniz. - Kubero arayüzü internete açıksa risk en yüksek seviyede.
Ne yapılmalı?
JWT_SECRETtanımlı değilse, Kubero belgelerine uygun şekilde güçlü ve rastgele bir değer atayıp servisi yeniden başlatın. Bu bir yapılandırma değişikliği olduğu için değişiklik sürecinizle yapın. Kayıttaki açıklamaya göre açığın tetiklenmesi bu değişkenin boş olmasına bağlı.- Arayüzü ve API'yi internetten kaldırın; erişimi VPN ya da bilinen IP aralıklarıyla sınırlayın.
- Kubero'da tanımlı kullanıcıları, API token'larını ve son eklenen pipeline ve uygulamaları gözden geçirin; tanımadığınız kayıt varsa olay müdahalesi başlatın.
- Kubero'nun kullandığı servis hesabının kümede hangi yetkilere sahip olduğunu
kubectl auth can-i --list --as=system:serviceaccount:<namespace>:<servis-hesabı>ile inceleyin. - Düzeltilmiş sürüm yayımlandığında güncelleyin.