CVE-2022-24791
Təsvir
Wasmtime, Cranelift istifadə edən WebAssembly üçün müstəqil JIT tipli runtime-dır. Həm externrefs istifadə edən Wasm işlədildikdə, həm də Wasmtime-da epoch interruption aktivləşdirildikdə "use after free" zəifliyi yaranır. Əgər siz epoch interruption funksiyasını açıq şəkildə aktivləşdirməmisinizsə (defolt olaraq söndürülmüşdür), bu problem sizə təsir etmir. Əgər Wasm reference types təklifini açıq şəkildə deaktiv etmisinizsə (defolt olaraq aktivdir), onda da sizə təsir etmir. "Use after free" problemi, soyuq blokların (cold blocks) daxilində safepoint-lər olduqda Cranelift-in stek xəritələrini (stack maps) yaratmaması səbəbindən baş verir. Soyuq bloklar epoch interruption aktiv olduqda yaranır. Soyuq bloklar kompilyasiya edilmiş funksiyaların sonunda yaradılır və blokların təyin edilmə ardıcıllığını dəyişir. Bu yenidən sıralama, Cranelift-in stek xəritələrini blokların emissiya ardıcıllığına görə deyil, təyin edilmə ardıcıllığına görə gözləməsi səbəbindən bəzi stek xəritələrinin ötürülməsinə səbəb olmuşdur. Wasmtime zibil toplama (garbage collection) prosesini həyata keçirdikdə, çatışmayan stek xəritələri səbəbindən stekdəki canlı istinadları tapa bilmir, onları istinadsız zibil hesab edir və geri qaytarır. Toplama prosesi bitdikdən sonra Wasm kodu vaxtından əvvəl geri qaytarılmış istinadlardan istifadə edə bilir ki, bu da "use after free" halıdır. Zəifliyi aradan qaldıran yamalar 0.34.2 və 0.35.2 versiyalarında dərc edilmişdir. Bütün Wasmtime istifadəçilərinə bu yamalı versiyalara keçid etmək tövsiyə olunur. Əgər hazırda yeniləmə imkanınız yoxdursa, aşağıdakılardan birini edərək zəiflikdən yayınmaq olar: ya Wasm reference types təklifini deaktiv edin, `config.wasm_reference_types(false)`; ya da əvvəllər aktiv etmişdinizsə, epoch interruption funksiyasını söndürün, `config.epoch_interruption(false)`.
Necə düzəltmək olar
- bytecodealliance wasmtime0.34.2, 0.35.2 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| bytecodealliance wasmtime | 0.34.0 ≤ v < 0.34.2, 0.35.0 ≤ v < 0.35.2 | 0.34.2, 0.35.2 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.