CVE-2025-27104
Açıklama
vyper, EVM için Python benzeri bir Akıllı Sözleşme Dilidir. Bir for döngüsünün yineleyici hedefinde tek bir ifadenin birden fazla kez değerlendirilmesi mümkündür. Yineleyici ifade birden fazla yazma işlemi gerçekleştiremese de, döngü gövdesinde üretilen yan etkileri tüketebilir (örneğin, döngü gövdesinde güncellenen bir depolama değişkenini okuyabilir) ve böylece beklenmedik program davranışlarına yol açabilir. Özellikle, bir ifexp içeren yineleyicilerdeki okumalar (örneğin `for s: uint256 in ([read(), read()] if True else [])`), okuma işlemlerini döngü gövdesindeki yazma işlemleriyle iç içe geçirebilir. Vyper for döngüleri iki tür yineleyici hedefine izin verir; bunlar `range()` yerleşik fonksiyonu ile SArray ve DArray gibi yineleyebileceğiniz türlerdir. Kod oluşturma sırasında, yineleyebileceğiniz listelerin herhangi bir yan etki üretmemesi gerekir (aşağıdaki kodda `range_scope`, `iter_list`'in sabit bir bağlamda ayrıştırılmasını zorunlu kılar ve bu durum `is_constant` ile kontrol edilir). Ancak bu, yineleyicinin döngü gövdesi tarafından sağlanan yan etkileri tüketmesini engellemez. Öte yandan SArray'ler için `iter_list`, bir `repeat` ir gövdesinde örneklendirilir, dolayısıyla birkaç kez değerlendirilebilir. Bu sorun üzerinde çalışılmaktadır ve sürüm 0.4.1'de mevcut olması beklenmektedir. Kullanıcıların, yamalanmış sürüm yayınlanır yayınlanmaz yükseltme yapmaları önerilir. Bu güvenlik açığı için bilinen bir geçici çözüm yoktur.
Nasıl düzeltilir
- vyperlang vyper0.4.1 ya da sonraki bir sürüm
- vyper0.4.1 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.4.1 | 0.4.1 |
| vyperPyPI | v < 0.4.1 | 0.4.1 |
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.