CVE-2024-47763

Orta

Açıklama

Wasmtime, WebAssembly için açık kaynaklı bir çalışma zamanıdır. Wasmtime'ın WebAssembly kuyruk çağrıları uygulaması, yığın izleriyle birleştiğinde belirli WebAssembly modüllerinde çalışma zamanı çökmesine yol açabilir. Wasmtime, Rust 1.80 veya öncesiyle derlendiğinde çalışma zamanı çökmesi tanımsız davranış olabilir. Wasmtime, Rust 1.81 ve sonrasıyla derlendiğinde çalışma zamanı çökmesi deterministik bir süreç iptalidir. WebAssembly kuyruk çağrıları, standardizasyon sürecinde nispeten yakın zamanda 4. aşamaya ulaşan bir öneridir. Wasmtime, kuyruk çağrıları desteğini ilk olarak Wasmtime 21.0.0'da varsayılan olarak etkinleştirdi, ancak bu sürüm yalnızca bazı yapılandırmalarda varsayılan olarak açık olduğu bir hata içeriyordu. Wasmtime 22.0.0'da kuyruk çağrıları tüm yapılandırmalarda varsayılan olarak etkinleştirildi. Belirli çökme, bir WebAssembly modülündeki (veya bileşenindeki) dışa aktarılan bir fonksiyonun, yığın izini yakalayan içe aktarılan bir ana bilgisayar fonksiyonuna (örneğin, ana bilgisayar fonksiyonu bir tuzak oluşturur) bir `return_call` (veya `return_call_indirect` veya `return_call_ref`) gerçekleştirmesi durumunda meydana gelir. Bu durumda, yığın yürüme kodu daha önce yığında her zaman en az bir WebAssembly çerçevesi olduğunu varsayıyordu, ancak kuyruk çağrılarıyla bu artık doğru değildir. Kuyruk çağrısı önerisiyle, bir giriş trampolininin çıkış trampolinini doğrudan çağırmış gibi görünmesi mümkündür. Bu durum, yığın yürüme kodunda bir Rust `panic!()` oluşturan dahili bir assert'i tetikler. Wasmtime, Rust 1.80 ve öncesi sürümlerle derlendiğinde bu, Rust'taki bir `extern "C"` fonksiyonunun bir `panic!()` oluşturduğu anlamına gelir. Bu teknik olarak tanımsız davranıştır ve tipik olarak, unwinder Cranelift tarafından oluşturulan çerçeveleri geri açamadığında bir süreç iptali olarak kendini gösterir. Wasmtime, Rust 1.81 ve sonrası sürümlerle derlendiğinde bu panic deterministik bir süreç iptali haline gelir. Genel olarak bu sorunun etkisi, kötü niyetli bir WebAssembly modülünün veya bileşeninin ana bilgisayarın çökmesine neden olabileceği bir hizmet reddi vektörü olmasıdır. Şu anda bir hizmetin kullanılabilirliği dışında başka bir etki yoktur, çünkü çökmenin sonucu her zaman bir çökmedir ve başka bir şey değildir. Bu sorun, Wasmtime projesi tarafından Google'ın OSS-Fuzz altyapısı aracılığıyla gerçekleştirilen rutin fuzzing ile keşfedilmiştir. Bir saldırgan tarafından gerçek dünyada hiç sömürüldüğüne dair kanıtımız yoktur. Kuyruk çağrılarının varsayılan olarak etkin olduğu tüm Wasmtime sürümleri yamalanmıştır: * 21.0.x - 21.0.2'de yamalandı * 22.0.x - 22.0.1'de yamalandı * 23.0.x - 23.0.3'te yamalandı * 24.0.x - 24.0.1'de yamalandı * 25.0.x - 25.0.2'de yamalandı. Wasmtime'ın 12.0.x (deneysel kuyruk çağrısı desteği içeren ilk sürüm) ile 20.0.x (kuyruk çağrılarının varsayılan olarak kapalı olduğu son sürüm) arasındaki sürümleri kuyruk çağrıları desteğine sahiptir, ancak destek varsayılan olarak devre dışıdır. Bu sürümler varsayılan yapılandırmalarında etkilenmez, ancak kuyruk çağrısı desteğini açıkça etkinleştiren kullanıcıların ya kuyruk çağrısı desteğini devre dışı bırakmaları ya da yamalanmış bir Wasmtime sürümüne yükseltmeleri gerekecektir. Bu sorun için ana geçici çözüm, Wasmtime'da kuyruk çağrıları desteğini devre dışı bırakmaktır, örneğin `Config::wasm_tail_call(false)` ile. Kullanıcılar aksi takdirde yamalanmış sürümlere yükseltmeye teşvik edilir.

ÖnemOrta
CVSS5.5
İstismar olasılığı—
ÜrünBytecodealliance Wasmtime
Yayın9 Eki 2024
İlk görülme9 Eki 2024
Zayıflık türüCWE-670CWE-670

Nasıl düzeltilir

Kaynaklarda bu zafiyet için düzeltilmiş sürüm ya da yama bağlantısı yok.

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
bytecodealliance wasmtime21.0.0, 21.0.1, 22.0.0, 23.0.0, 23.0.1, 23.0.2, 24.0.0, 25.0.0, 25.0.1—
wasmtime-binPyPIv ≤ 21.0.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-2024-47763 · Bytecodealliance Wasmtime · Dark Radar