CVE-2024-32646 json
vyper performs double eval of the slice args when buffer from adhoc locations
published 2y ago modified 4mo 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
Is CVE-2024-32646 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- partial
- Assessed
- 2y ago
Exploit prediction
0.45% chance of exploitation in the next 30 days, higher than 39% of all scored CVEs (FIRST EPSS, 2026-11-11).
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 Intel 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.