CVE-2023-50730

Yüksek

Açıklama

Grackle, Typelevel yığını üzerine inşa edilmiş, fonksiyonel Scala ile yazılmış bir GraphQL sunucusudur. GraphQL spesifikasyonu, GraphQL fragment'larının doğrudan veya dolaylı olarak döngüler oluşturmamasını gerektirir. Grackle sürüm 0.18.0 öncesinde bu gereksinim kontrol edilmiyordu ve döngüsel fragment'lar içeren sorgular tip kontrolü ve derleme için kabul ediliyordu. Bu tür fragment'ların derlenme girişimi, bir JVM `StackOverflowError` hatasının fırlatılmasıyla sonuçlanıyordu. Böyle bir sorgu oluşturmak için uygulamanın GraphQL şeması hakkında belirli bir bilgi gerekse de, uygulamaya özgü performans veya diğer davranışsal özellikler hakkında herhangi bir bilgiye ihtiyaç duyulmuyordu. Grackle, GraphQL sorgularını ayrıştırmak için cats-parse kütüphanesini kullanır. Sürüm 0.18.0 öncesinde Grackle, cats-parse `recursive` operatörünü kullanmaktaydı. Ancak `recursive` şu anda yığın güvenli (stack safe) değildir. `recursive`, ayrıştırıcıda üç yerde kullanılıyordu: iç içe geçmiş seçim kümeleri (selection sets), iç içe geçmiş girdi değerleri (listeler ve nesneler) ve iç içe geçmiş liste tipi tanımlamaları. Sonuç olarak, bunu istismar eden derinlemesine iç içe geçmiş seçim kümelerine, girdi değerlerine veya liste tiplerine sahip sorgular oluşturulabiliyor ve bu durum ayrıştırma sırasında bir JVM `StackOverflowException` hatasının fırlatılmasına neden oluyordu. Bu işlem sorgu işlemenin çok erken aşamasında gerçekleştiği için, böyle bir sorgu oluşturmak için uygulamanın GraphQL şeması hakkında özel bir bilgiye gerek duyulmuyordu. Küçük sorguların yığın taşmasına yol açma olasılığı, potansiyel bir hizmet reddi (DoS) zafiyetidir. Bu durum, güvenilmeyen kullanıcıları olan ve Grackle kullanan tüm uygulamaları potansiyel olarak etkilemektedir. Her iki yığın taşması sorunu da Grackle'ın v0.18.0 sürümünde çözülmüştür. Geçici bir çözüm olarak kullanıcılar, güvenilmeyen girdiler ile Grackle sorgu işlemi arasına temizleyici bir katman yerleştirebilirler.

ÖnemYüksek
CVSS7.5
İstismar olasılığı—
ÜrünTypelevel Grackle
Yayın22 Ara 2023
İlk görülme22 Ara 2023

Nasıl düzeltilir

Güncelleyin
  • typelevel grackle0.18.0 ya da sonraki bir sürüm
  • org.typelevel:grackle-core_2.130.18.0 ya da sonraki bir sürüm
  • org.typelevel:grackle-core_30.18.0 ya da sonraki bir sürüm
  • org.typelevel:grackle-core_sjs1_2.130.18.0 ya da sonraki bir sürüm
  • org.typelevel:grackle-core_sjs1_30.18.0 ya da sonraki bir sürüm
  • org.typelevel:grackle-core_native0.4_2.130.18.0 ya da sonraki bir sürüm
  • org.typelevel:grackle-core_native0.4_30.18.0 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
typelevel gracklev < 0.18.00.18.0
org.typelevel:grackle-core_2.13Mavenv < 0.18.00.18.0
org.typelevel:grackle-core_3Mavenv < 0.18.00.18.0
org.typelevel:grackle-core_sjs1_2.13Mavenv < 0.18.00.18.0
org.typelevel:grackle-core_sjs1_3Mavenv < 0.18.00.18.0
org.typelevel:grackle-core_native0.4_2.13Mavenv < 0.18.00.18.0
org.typelevel:grackle-core_native0.4_3Mavenv < 0.18.00.18.0
edu.gemini:gsp-graphql-core_2.13Mavenv ≤ 0.14.0—
edu.gemini:gsp-graphql-core_3Mavenv ≤ 0.14.0—
edu.gemini:gsp-graphql-core_sjs1_2.13Mavenv ≤ 0.14.0—
edu.gemini:gsp-graphql-core_sjs1_3Mavenv ≤ 0.14.0—
edu.gemini:gsp-graphql-core_native0.4_2.13Mavenv ≤ 0.14.0—
edu.gemini:gsp-graphql-core_native0.4_3Mavenv ≤ 0.14.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.

Intelligence 360 paketinde

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.

CVE-2023-50730 · Typelevel Grackle · Dark Radar