CVE-2023-30837 json
Vyper storage allocator overflow
published 2023-05-05 3 y ago modified 2026-09-10 1 mo ago also GHSA-mgv8-gggw-mrg6 , PYSEC-2023-76 , EUVD-2023-0269
- cvss
- 7.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.7%
- EPSS 0.7% chance of exploitation in 30 days, percentile 53%
- public exploits
- 0
- none known
Summary
Vyper is a pythonic smart contract language for the EVM. The storage allocator does not guard against allocation overflows in versions prior to 0.3.8. An attacker can overwrite the owner variable. This issue was fixed in version 0.3.8.
Patch / fix
CISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 21 mo ago
Exploit prediction
0.70% chance of exploitation in the next 30 days, higher than 53% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/vyperlang/vyper/security/advisories/GHSA-mgv8-gggw-mrg6 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| NVD | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| GitHub | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | vyper | <0.3.8 |
0.3.8 |
Affected products
- vyperlang vyper
Classification
- Weakness
-
- CWE-789 Memory Allocation with Excessive Size Value
References
-
github.com
/vyperlang/vyper/commit/0bb7203b584e771b23536ba065a6efda457161bb
web, patch
-
github.com
/vyperlang/vyper/security/advisories/GHSA-mgv8-gggw-mrg6
web, exploit, vendor-advisory, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2023-30837
advisory
-
github.com
/pypa/advisory-database/tree/main/vulns/vyper/PYSEC-2023-76.yaml
web
-
github.com
/vyperlang/vyper
package
Sources
- CVE List CVE-2023-30837
- GitHub Advisory GHSA-mgv8-gggw-mrg6
- NVD CVE-2023-30837
- OSV PYSEC-2023-76
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.