CVE-2024-7884

Yüksek

Açıklama

Bir canister metodu ic_cdk::call* aracılığıyla çağrıldığında, yeni bir Future olan CallFuture oluşturulur ve yürütme sonucunu almak için çağıran tarafından beklenebilir (awaited). Dahili olarak, Future durumu CallFutureState adlı bir struct içinde izlenir ve saklanır. CallFuture'ın polling uygulamasındaki bir hata, bu dahili durum için birden fazla referans tutulmasına izin verir ve tüm referanslar Future çözümlenmeden önce serbest bırakılmaz. Hesaba katılmayan referanslar tutulduğu için, dahili durumun bir kopyası canister'ın heap belleğinde kalır ve böylece bellek sızıntısına neden olur. Etki: ic_cdk ve ic_cdk_timers ile Rust dilinde oluşturulan canister'lar etkilenmektedir. Bu canister'lar bir canister metodunu çağırırsa, zamanlayıcıları veya heartbeat özelliğini kullanırlarsa, her işlemde muhtemelen küçük miktarda bellek sızdıracaklardır. En kötü durumda bu, bir saldırgan tarafından tetiklenen heap bellek tükenmesine yol açabilir. Motoko tabanlı canister'lar bu hatadan etkilenmemektedir. Yamalar: Yama, >= 0.8.0 ve <= 0.15.0 arasındaki tüm ara sürümlere geri port edilmiştir. Mevcut yamalı sürümler 0.8.2, 0.9.3, 0.10.1, 0.11.6, 0.12.2, 0.13.5, 0.14.1, 0.15.1'dir ve önceki sürümleri geri çekilmiştir. Geçici Çözümler: Şu anda bilinen bir geçici çözüm yoktur. Geliştiricilerin, Wasm heap belleğinin tükenmesini önlemek için canister'larını mümkün olan en kısa sürede ic_cdk'nın mevcut en güncel yamalı sürümüne yükseltmeleri önerilir. Canister'ların yükseltilmesi (`ic_cdk` güncellenmeden), sızan belleği de boşaltır ancak bu yalnızca geçici bir çözümdür.

ÖnemYüksek
CVSS7.5
İstismar olasılığı—
ÜrünDfinity Canister Developer Kit For The Internet Computer
Yayın5 Eyl 2024
İlk görülme5 Eyl 2024
Zayıflık türüCWE-401CWE-401

Nasıl düzeltilir

Güncelleyin
  • dfinity canister_developer_kit_for_the_internet_computer0.8.2, 0.9.3, 0.11.6, 0.12.2, 0.13.5 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
dfinity canister_developer_kit_for_the_internet_computer0.8.0 ≤ v < 0.8.2, 0.9.0 ≤ v < 0.9.3, 0.11.0 ≤ v < 0.11.6, 0.12.0 ≤ v < 0.12.2, 0.13.0 ≤ v < 0.13.5, 0.10.0, 0.14.0, 0.15.00.8.2, 0.9.3, 0.11.6, 0.12.2, 0.13.5

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.