SputnikVM, также называемый evm, - это Rust-реализация Ethereum Virtual Machine. Пользовательский stateful precompile может использовать па…
SputnikVM, также называемый evm, - это Rust-реализация Ethereum Virtual Machine. Пользовательский stateful precompile может использовать параметр `is_static`, чтобы определить, выполняется ли вызов в статическом контексте (через `STATICCALL`), и, таким образом, решить, следует ли выполнять stateful операции. До версии 0.36.0 переданный параметр `is_static` был неверным - он устанавливался в `true` только в том случае, если вызов исходил из прямой операции `STATICCALL`. Однако, как только статический контекст вызова введен, он должен оставаться статическим. Проблема затрагивает только пользовательские precompiles, которые фактически используют `is_static`. Для тех, кого это затронуло, проблема может привести к возможным неправильным переходам состояний. Версия 0.36.0 содержит исправление. Известных обходных путей не существует.
Код содержит путь в потоке управления, не соответствующий алгоритму, который этот путь должен реализовывать, что приводит к некорректному поведению при каждом прохождении данного пути.
https://cwe.mitre.org/data/definitions/670.html →Открыть в коллекции CWE →