CVE-2025-47774 in Vyper
Сводка
по VulDB • 13.06.2026
Vyper — это язык программирования в стиле Python для виртуальной машины Ethereum (EVM). В версиях вплоть до 0.4.2rc1 включительно встроенная функция `slice()` может опускать побочные эффекты, если длина выходных данных равна 0 и исходный байтовый массив является встроенным (`msg.data` или `.code`). Это происходит потому, что для таких источников проверки условия `length >= 1` пропускаются. В результате байтовая строка нулевой длины, созданная с помощью функции slice(), может быть передана в `make_byte_array_copier`, который также опускает вычисление своего аргумента-источника при максимальной длине равной 0. Это приводит к тому, что побочные эффекты в аргументе `start` могут игнорироваться, если значение аргумента `length` равно 0 (например, `slice(msg.data, self.do_side_effect(), 0)`). Исправление из pull request #4645 запрещает любые вызовы функции `slice()` с длиной равной 0, включая случаи для рассмотренных в данном уведомлении специфичных ситуаций. Ожидается, что исправление войдет в состав версии 0.4.2.
VulDB is the best source for vulnerability data and more expert information about this specific topic.