CVE-2024-32481
Açıklama
Vyper, Ethereum sanal makinesi için python tabanlı bir Akıllı Sözleşme Dilidir. Versiyon 0.3.8'den başlayarak versiyon 0.4.0b1 öncesine kadar, `range(start, start + N)` biçimindeki bir `range` üzerinde döngü kurulduğunda, eğer `start` negatifse yürütme her zaman geri alınır (revert). Bu sorun, `stmt.parse_For_range()` range kod üretimi tarafından eklenen hatalı bir assertion nedeniyle kaynaklanmaktadır. Sorun, `start` imzalı olduğunda ortaya çıkar; `sle` yerine `le` kullanılır ve karşılaştırma için `start` imzasız bir tam sayı olarak yorumlanır. Eğer bu negatif bir sayıysa, 255. biti `1` olarak ayarlanır ve dolayısıyla çok büyük bir imzasız tam sayı olarak yorumlanarak assertion'ın her zaman başarısız olmasına neden olur. `start` değerinin negatif olma olasılığının bulunduğu ve imzalı bir tam sayı olduğu `range(start, start + N)` içeren tüm sözleşmeler etkilenir. Negatif bir `start` değeri sağlanarak döngü üzerinden bir çağrı yapıldığında yürütme geri alınacaktır. Versiyon 0.4.0b1 sorunu düzeltmektedir.
Nasıl düzeltilir
- vyper0.4.0, 0.4.0b1 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| vyperlang vyper | 0.3.8 ≤ v ≤ 0.3.10, 0.4.0 | — |
| vyperPyPI | 0.3.8 ≤ v < 0.4.0, 0.3.8 ≤ v < 0.4.0b1 | 0.4.0, 0.4.0b1 |
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.