Discover the impact of CVE-2023-30629 affecting Vyper versions 0.3.1 through 0.3.7. Learn about the vulnerability, affected systems, exploitation risks, and mitigation steps.
Vyper's raw_call with outsize=0 and revert_on_failure=False returns incorrect success value.
Understanding CVE-2023-30629
Vyper is a Pythonic Smart Contract Language for the Ethereum virtual machine. The vulnerability affects versions 0.3.1 through 0.3.7.
What is CVE-2023-30629?
In Vyper versions 0.3.1 through 0.3.7, the Vyper compiler generates incorrect bytecode, leading to unexpected behavior when using 'raw_call' with specific parameters.
The Impact of CVE-2023-30629
The vulnerability allows for incorrect success values to be returned, potentially leading to unexpected results and exploitation by malicious actors.
Technical Details of CVE-2023-30629
The vulnerability arises when utilizing the 'raw_call' function with 'revert_on_failure' set to False and 'max_outsize' equal to 0, resulting in incorrect responses.
Vulnerability Description
Depending on memory garbage, the output of 'raw_call' can be either 'True' or 'False.' A patch is available and expected to be included in Vyper 0.3.8.
Affected Systems and Versions
Exploitation Mechanism
The vulnerability can be exploited by manipulating parameters in conjunction with the 'raw_call' function.
Mitigation and Prevention
Immediate action is advised to secure systems and prevent exploitation.
Immediate Steps to Take
Long-Term Security Practices