CVE-2026-66908
Açıklama
Apache Camel Platform HTTP Main bileşeninde Hatalı Kimlik Doğrulama zafiyeti bulunmaktadır. Bu sorun, 4.8.0 ile 4.22.0 öncesindeki Apache Camel sürümlerini etkilemektedir. camel-main gömülü HTTP sunucusu, uç noktalarını authenticationEnabled ve JWT keystore özellikleri aracılığıyla yapılandırılan JWT kimlik doğrulaması ile koruyabilmektedir. Hem jwtIssuer hem de jwtAudience yapılandırılmadığında JWTAuthenticationConfigurer.buildJwtOptions null döndürmekteydi ve çağıran taraf JWTAuthOptions.setJWTOptions çağrısını tamamen atlıyordu; bu nedenle Vert.x JWTAuth örneği yalnızca keystore üzerinden oluşturuluyordu. Bunun sonucunda, gelen token'lar sadece imza ve süre dolumu açısından kontrol ediliyordu: iss ve aud talepleri (claims) hiçbir şekilde doğrulanmıyordu. Sunucu normal şekilde başladığı ve herhangi bir uyarı vermediği için bu durum fark edilmiyordu; böylece dokümante edilen yöntemle yapılandırılmış bir dağıtım, operatörün etkinleştirdiğini sandığından daha az güvenlik önlemini sessizce uyguluyordu ve bileşen dokümantasyonunun kendisi, imza ve süre dolumu kontrolünü varsayılan olarak, yayıncı (issuer) ve hedef kitleyi (audience) ise isteğe bağlı ekstralar olarak sunuyordu. Eksiklik her iki configureAuthentication yolunda da olduğu için hem uygulama sunucusu hem de yönetim sunucusu etkilenmişti. Bu nedenle, yapılandırılan keystore tarafından güvenilen herhangi bir anahtar ile imzalanmış süresi dolmamış her token, hangi yayıncı tarafından üretildiğine veya hangi hedef kitle için amaçlandığına bakılmaksızın kabul ediliyordu. Bunun etki alanı keystore'un güven kümesine bağlıdır: İmzalama anahtarı paylaşımlı veya çok kiracılı (multi-tenant) bir kimlik sağlayıcıya aitse, tamamen farklı bir hedef kitle için meşru olarak düzenlenmiş bir token kabul edilirken; özel bir imzalayıcı içeren bir keystore, bunu aynı güven alanı içindeki diğer hizmetler için üretilmiş token'ların yeniden kullanımıyla sınırlandırır. jwtIssuer ve jwtAudience seçenekleri 4.21.0 sürümünden önce mevcut değildi, bu nedenle önceki sürümlerde bu taleplerin zorunlu kılınmasının desteklenen bir yolu yoktu. Kullanıcıların sorunu gideren 4.22.0 sürümüne yükseltmeleri önerilir. 4.22.0 sürümünden itibaren sunucu, bir JWT keystore yapılandırıldığında ancak ne jwtIssuer ne de jwtAudience ayarlandığında ilgili özellikleri belirterek başlamayı reddeder; yalnızca imza ve süre dolumu doğrulaması isteyen bir dağıtım ise bunu yeni jwtAllowMissingIssuerAndAudience seçeneğiyle (varsayılan değeri false'dur) açıkça belirtmelidir. Bu davranış yalnızca 4.22.0 sürümünde düzeltilmiştir. 4.14.9 ve 4.18.4 sürümleri varsayılanı değiştirmez: Bakım hatlarındaki operatörlerin konfigürasyon yoluyla talepleri zorunlu kılabilmeleri için jwtIssuer ve jwtAudience seçeneklerini eklerler; ancak bu iki özellikten en az birini ayarlamadan 4.14.9 veya 4.18.4 sürümüne yükselten bir kurulum, hala güvenilen bir anahtar tarafından imzalanmış süresi dolmamış her token'ı kabul etmeye devam eder. Bu nedenle 4.14.x veya 4.18.x kullanan kullanıcılar 4.14.9 veya 4.18.4 sürümüne yükseltmeli ve ardından jwtIssuer, jwtAudience veya her ikisini birden ayarlamalıdır. 4.8.0'dan 4.21.x dahil olan sürümler bu talepleri zorunlu kılmanın bir yolunu sunmaz ve bunları destekleyen bir sürüme geçirilmelidir. Sürümden bağımsız olarak, JWT keystore'u mümkün olan en küçük güven kümesiyle sınırlayın - ideal olarak paylaşımlı bir kimlik sağlayıcı anahtarı yerine bu hizmete özel bir imzalayıcı kullanın - ve sunucunun önündeki bir ağ geçidi (gateway) zaten yayıncıyı ve hedef kitleyi doğruluyorsa, bunun atlatılamayacağından emin olun. Notlar: JIRA kaydı: https://issues.apache.org/jira/browse/CAMEL-24281 sorunu çözen çeşitli commit'lere atıfta bulunur ve daha fazla ayrıntı içerir. "Fail-closed" koruması eski sürümlere aktarılamadı. jwtIssuer ve jwtAudience seçeneklerinin kendileri ancak 4.21.0 sürümünde CAMEL-23525 ile tanıtılmıştı; bu nedenle camel-4.18.x ve camel-4.14.x sürümlerinde bir operatörün gereksinimleri karşılamak için ayarlayabileceği hiçbir şey yoktu ve bu koruma, söz konusu dallardaki tüm JWT dağıtımlarını herhangi bir çözüm olmaksızın bozardı.
Nasıl düzeltilir
- apache camel4.22.0 ya da sonraki bir sürüm
- org.apache.camel:camel-platform-http-main4.22.0 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| apache camel | 4.8.0 ≤ v < 4.22.0 | 4.22.0 |
| org.apache.camel:camel-platform-http-mainMaven | 4.8.0 ≤ v < 4.22.0 | 4.22.0 |
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.