CVE-2023-42443
Açıklama
Vyper, Ethereum Virtual Machine (EVM) için Python benzeri bir Akıllı Sözleşme Dilidir. Versiyon 0.3.9 ve öncesinde, belirli koşullar altında, `raw_call`, `create_from_blueprint` ve `create_copy_of` yerleşik fonksiyonları tarafından kullanılan bellek bozulabilir. `raw_call` için çağrının argüman tamponu bozulabilir ve bu durum alt bağlamda hatalı `calldata` oluşmasına yol açabilir. `create_from_blueprint` ve `create_copy_of` için dağıtılacak bytecode tamponu bozulabilir ve bu da hatalı bytecode dağıtılmasına neden olabilir. Her yerleşik fonksiyonun, bozulmanın gerçekleşmesi için karşılanması gereken koşulları vardır. `raw_call` için, yerleşik fonksiyonun `data` argümanı `msg.data` olmalı ve yerleşik fonksiyona iletilen `value` veya `gas` değeri belleğe yazma işlemiyle sonuçlanan karmaşık bir ifade olmalıdır. `create_copy_of` için, yerleşik fonksiyona iletilen `value` veya `salt` değeri belleğe yazma işlemiyle sonuçlanan karmaşık bir ifade olmalıdır. `create_from_blueprint` için, ya yerleşik fonksiyona hiçbir kurucu parametre geçilmemeli veya `raw_args` True olarak ayarlanmalı ve yerleşik fonksiyona iletilen `value` veya `salt` değeri belleğe yazma işlemiyle sonuçlanan karmaşık bir ifade olmalıdır. Yayınlandığı tarih itibarıyla yamalanmış bir versiyon mevcut değildir. Sorun hala araştırılmaktadır ve bozulmanın meydana gelebileceği başka durumlar olabilir. Yerleşik fonksiyon `internal` bir `F` fonksiyonundan çağrıldığında, eğer `F`'yi çağıran fonksiyon `F`'yi çağırmadan önce belleğe yazdıysa sorun mevcut değildir. Geçici bir çözüm olarak, yerleşik fonksiyona kwargs olarak iletilen karmaşık ifadeler, yerleşik fonksiyon çağrısından önce bellekte önbelleğe alınmalıdır.
Nasıl düzeltilir
- vyperlang vyper0.3.10 ya da sonraki bir sürüm
- vyper0.3.10 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| vyperlang vyper | v < 0.3.10 | 0.3.10 |
| vyperPyPI | 0.3.4 ≤ v < 0.3.10, v < 0.3.10 | 0.3.10 |
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.
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.