CVE-2024-43783
Açıklama
Apollo Router Core, Apollo Federation 2 kullanan federasyonel bir süpergrafı çalıştırmak için Rust ile yazılmış, yapılandırılabilir ve yüksek performanslı bir grafik yönlendiricidir. >=1.21.0 ve < 1.52.1 sürümlerini çalıştıran Apollo Router örnekleri, aşağıdaki koşulların tamamı doğruysa bir hizmet reddi (denial of service) zafiyetinden etkilenir: 1. Apollo Router, [External Coprocessing](https://www.apollographql.com/docs/router/customizations/coprocessor) özelliğini destekleyecek şekilde yapılandırılmıştır. 2. Apollo Router, istek gövdelerini coprocessor'lara gönderecek şekilde yapılandırılmıştır. Bu varsayılan olmayan bir yapılandırmadır ve yöneticiler tarafından kasıtlı olarak yapılandırılmalıdır. >=1.7.0 ve <1.52.1 sürümlerini çalıştıran Apollo Router örnekleri ise şu koşulların tamamı doğruysa bir hizmet reddi zafiyetinden etkilenir: 1. Yönlendirici, özel geliştirilmiş bir Native Rust Plugin kullanacak şekilde yapılandırılmıştır. 2. Eklenti, RouterService katmanındaki Request.router_request öğesine erişmektedir. 3. Request.router_request içerisindeki gövde belleğe aktarılmaktadır. Etkilenen bir yapılandırma kullanılıyorsa, Yönlendirici; limits.http_max_request_bytes gibi diğer HTTP istek boyutu sınırlama yapılandırmalarını dikkate almaksızın tüm HTTP istek gövdelerini belleğe yükleyecektir. Yönlendiriciye yeterince büyük bir istek gönderilmesi durumunda bu durum, Yönlendiricinin bellek yetersizliği (OOM) nedeniyle sonlandırılmasına neden olabilir. Varsayılan olarak Yönlendirici, limits.http_max_request_bytes değerini 2 MB olarak ayarlar. Yukarıda tanımlanan etkilenen bir yapılandırmaya sahipseniz, lütfen en az Apollo Router 1.52.1 sürümüne yükseltin. Yükseltme yapamıyorsanız, coprocessor.router.request.body yapılandırma seçeneğini false yaparak External Coprocessor'ları etkileyen hizmet reddi riskini azaltabilirsiniz. Lütfen bu yapılandırma seçeneğini değiştirmenin, yapılandırdığınız coprocessor'lara gönderilen bilgileri değiştireceğini ve bu coprocessor'lar tarafından uygulanan işlevselliği etkileyebileceğini unutmayın. Bir Native Rust Plugin geliştirdiyseniz ve yükseltme yapamıyorsanız, eklentinizi ya istek gövdesini belleğe aktarmayacak ya da maksimum gövde boyutu sınırı uygulayacak şekilde güncelleyebilirsiniz. Ayrıca bu sorunu, Yönlendirici öncesinde (örneğin bir proxy veya web uygulama güvenlik duvarı cihazında) HTTP gövde yükü boyutlarını sınırlayarak da hafifletebilirsiniz.
Nasıl düzeltilir
- apollographql apollo_helms-charts_router1.52.1 ya da sonraki bir sürüm
- apollographql apollo-router1.52.1 ya da sonraki bir sürüm
- apollographql apollo_router1.52.1 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| apollographql apollo_helms-charts_router | 1.7.0 ≤ v < 1.52.1 | 1.52.1 |
| apollographql apollo-router | 1.7.0 ≤ v < 1.52.1 | 1.52.1 |
| apollographql apollo_router | 1.7.0 ≤ v < 1.52.1 | 1.52.1 |
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.