CVE-2024-32646: vyper performs double eval of the slice start/length args in certain cases
CVE-2024-32646 · Severity: low · CVSS 3.1 · Published 2024-04-25
Vyper is a pythonic Smart Contract Language for the Ethereum virtual machine. In versions 0.3.10 and prior, using the `slice` builtin can result in a double eval vulnerability when the buffer argument is either `msg.data`, `self.code` or `<address>.code` and either the `start` or `length` arguments have side-effects. It can be easily triggered only with the versions `<0.3.4` as `0.3.4` introduced the unique symbol fence. No vulnerable production contracts were found. Additionally, double evaluation of side-effects should be easily discoverable in client tests. As such, the impact is low. As of time of publication, no fixed versions are available.
No. Junglewise Threat Intelligence has no report of CVE-2024-32646 being exploited in the wild.
How severe is CVE-2024-32646?
Low severity, with a CVSS score of 3.1, published 25 April 2024.
Which products and versions are affected?
vyper (PyPI) ECOSYSTEM:introduced=0,fixed=0.4.0.
Is there a fix for CVE-2024-32646?
Yes. vyper (PyPI): upgrade to 0.4.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
Am I affected by CVE-2024-32646?
Check whether you run vyper (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.