CVE-2024-32481
Təsvir
Vyper, Ethereum virtual maşını üçün Python-vari Smart Kontrakt Dilidir. Versiya 0.3.8-dən başlayaraq və versiya 0.4.0b1-ə qədər olan versiyalarda, `range(start, start + N)` formasında olan bir `range` üzrə dövr qurularkən, əgər `start` mənfidirsə, icra həmişə geri qaytarılacaq (revert). Bu problem, `stmt.parse_For_range()` range kod generasiyası tərəfindən daxil edilmiş yanlış təsdiqləmədən (assertion) qaynaqlanır. Problem `start` imzalı olduqda yaranır; burada `sle` yerinə `le` istifadə olunur və müqayisə zamanı `start` imzalanmamış tam ədəd kimi şərh edilir. Əgər bu mənfi ədəddirsə, onun 255-ci biti `1` olaraq təyin edilir və buna görə də çox böyük imzalanmamış tam ədəd kimi şərh edilərək təsdiqləmənin həmişə uğursuz olmasına səbəb olur. `start`-ın mənfi olma ehtimalı olan imzalı tam ədəd olduğu hər hansı `range(start, start + N)` strukturuna malik kontrakt təsirlənir. Mənfi `start` təmin etməklə dövr vasitəsilə çağırış edildikdə, icra geri qaytarılacaqdır. Versiya 0.4.0b1 problemi aradan qaldırır.
Necə düzəltmək olar
- vyper0.4.0, 0.4.0b1 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| 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 |
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.