CVE-2023-42443

Yüksek

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.

ÖnemYüksek
CVSS8.1
İstismar olasılığı—
ÜrünVyper
Yayın18 Eyl 2023
İlk görülme18 Eyl 2023

Nasıl düzeltilir

Güncelleyin
  • 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ünEtkilenen sürümlerDüzeltildiği sürüm
vyperlang vyperv < 0.3.100.3.10
vyperPyPI0.3.4 ≤ v < 0.3.10, v < 0.3.100.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.

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.