CVE-2021-39219

Orta

Açıklama

Wasmtime, WebAssembly ve WASI için açık kaynaklı bir çalışma zamanıdır. Wasmtime'ın 0.30.0 sürümünden önceki sürümleri bir tür karışıklığı güvenlik açığından etkilenmektedir. Bir Rust kütüphanesi olarak `wasmtime` crate'i hangi işlevlerin güvenli, hangilerinin `unsafe` olduğunu açıkça belirtir ve tüketiciler hiçbir zaman `unsafe` kullanmadığı sürece Wasmtime'ı gömülü olarak kullanımlarında bellek güvenliği sorunlarının oluşmasının mümkün olmamasını garanti eder. `Linker::func_*` API'lerinin güvenli API'sinde bir sorun keşfedilmiştir. Bu API'ler, bir `Engine`'in `Linker` oluşturmak için kullanıldığı ve ardından farklı bir `Engine`'in bir `Store` oluşturmak için kullanıldığı ve sonra `Linker`'ın bu `Store` içine bir modül örneklemek için kullanıldığı durumlarda daha önce sağlam değildi. İşlevlerin `Engine`'ler arası kullanımı Wasmtime'da desteklenmez ve bu durum işlev işaretçilerinde tür karışıklığına yol açarak bir işlevin yanlış türle güvenli bir şekilde çağrılabilmesine neden olabilir. Bu hatanın tetiklenmesi, bir gömülü kullanımda en az iki `Engine` değerinin kullanılmasını ve ayrıca bir `Linker` ile iki farklı değerin kullanılmasını (biri `Linker`'ın oluşturulma zamanında, diğeri `Linker` ile bir modül örneklenirken) gerektirir. Bir `Engine`'in genel olarak paylaşılan bir kaynak olması amaçlandığından, bir gömülü kullanımda birden fazla `Engine` kullanımının nispeten nadir olduğu beklenmektedir, dolayısıyla bu sorunun etkisinin nispeten küçük olduğu düşünülmektedir. Uygulanan düzeltme, bu davranışın sessizce izin verilmesi yerine Rust'ta `panic!()` olarak değiştirilmesidir. Bir `Linker` ile farklı `Engine` örneklerinin kullanılması, `wasmtime`'ın çalışma zamanında yakaladığı bir programcı hatasıdır. Bu hata yamalanmıştır ve kullanıcılar Wasmtime'ın 0.30.0 sürümüne yükseltme yapmalıdır. Wasmtime'ı yükseltemiyorsanız ve gömülü kullanımınızda birden fazla `Engine` kullanıyorsanız, mümkünse tüm program için yalnızca bir `Engine` kullanmanız önerilir. Bir `Engine`, tüm bir sürecin ömrü boyunca yalnızca bir tanesinin bulunması uygun olan, genel olarak paylaşılan bir kaynak olarak tasarlanmıştır. Birden fazla `Engine` kullanılması gerekiyorsa, `Linker`'ın yalnızca bir `Engine` ile kullanıldığından emin olmak için kod denetlenmelidir.

ÖnemOrta
CVSS6.3
İstismar olasılığı—
ÜrünBytecodealliance Wasmtime
Yayın17 Eyl 2021
İlk görülme17 Eyl 2021
Zayıflık türüCWE-843CWE-843

Nasıl düzeltilir

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
bytecodealliance wasmtimev < 0.30.00.30.0
fedoraproject fedora34, 35—

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.