CVE-2024-32646 json
vyper performs double eval of the slice args when buffer from adhoc locations
published 2024-04-25 2 y ago modified 2026-06-17 4 mo ago also EUVD-2024-0183 , GHSA-r56x-j438-vw5m , PYSEC-2024-207
- cvss
- 5.3
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.5%
- EPSS 0.5% chance of exploitation in 30 days, percentile 39%
- public exploits
- 0
- none known
Summary
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.
Patch / fix
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2 y ago
Exploit prediction
0.45% chance of exploitation in the next 30 days, higher than 39% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N |
| GitHub | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N |
| NVD | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N |
| OSV | 3.1 | 5.3 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | vyper | <0.4.0 |
0.4.0 |
Affected products
- vyperlang vyper
Classification
- Weakness
-
- CWE-20 Improper Input Validation
References
-
github.com
/vyperlang/vyper/pull/2914
web
-
github.com
/vyperlang/vyper/security/advisories/GHSA-r56x-j438-vw5m
web, vendor-advisory, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2024-32646
advisory
-
github.com
/pypa/advisory-database/tree/main/vulns/vyper/PYSEC-2024-207.yaml
web
-
github.com
/vyperlang/vyper
package
-
github.com
/advisories/GHSA-r56x-j438-vw5m
advisory
Sources
- CVE List CVE-2024-32646
- GitHub Advisory GHSA-r56x-j438-vw5m
- NVD CVE-2024-32646
- OSV PYSEC-2024-207
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.