CVE-2023-30837
highpriority · track · 30EPSS 0.007 · 53 %ileEUUSEPSS · scored 2026-10-27
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.
cvss
Technical severity, 0–10. One row per scoring source.
base score 0–10 · higher = more severe · hover a vector to decode⚠ sources disagree · medium–high · 6.9–7.5
ssvc
A stakeholder decision — act, attend, or track — from exploitation and impact.
weaknesses
The CWE weakness classes this flaw belongs to.
affected products (3)
Products and version ranges known to be affected.
advisories (2)
Vendor and ecosystem advisories describing this.
- GHSA-mgv8-gggw-mrg6vyper vulnerable to storage allocator overflow2023-05-05ghsa · osvUS
### Impact The storage allocator does not guard against allocation overflows. This can result in vulnerabilities like the following: ```vyper owner: public(address) take_up_some_space: public(uint256[10]) buffer: public(uint256[max_value(uint256)]) @external def initialize(): self.owner = msg.sender @external def foo(idx: uint256, data: uint256): self.buffer[idx] = data ``` Per @toonvanhove, "An attacker can overwrite the owner variable by calling this contract with calldata: `0x04bc52f8 fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5 ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff` (spaces inserted for readability) `0x04bc52f8` is the selector for `foo(uint256, uint256)`, and the last argument `fff...fff` is the new value for the owner variable." ### Patches patched in 0bb7203b584e771b23536ba065a6efda457161bb ### Workarounds _Is there a way for users to fix or remediate the vulnerability without upgrading?_ ### References _Are there any links users can visit to find out more?_
- PYSEC-2023-762023-05-08vendor · osvUS
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.
also known as (6)
Other names and identifiers for this entity.
sources
Which sources assert this record, and when.
references (8)
External citations — patches, advisories, analysis.
- https://cxsecurity.com/cveshow/CVE-2023-30837/cnnvd
- https://github.com/vyperlang/vyper/commit/0bb7203b584e771b23536ba065a6efda457161bbcnnvd
- https://github.com/vyperlang/vyper/security/advisories/GHSA-mgv8-gggw-mrg6cnnvd
- https://nvd.nist.gov/vuln/detail/CVE-2023-30837cnnvd
- https://github.com/vyperlang/vyper/commit/0bb7203b584e771b23536ba065a6efda457161bbenisa_euvd
- https://github.com/vyperlang/vyper/security/advisories/GHSA-mgv8-gggw-mrg6enisa_euvd
- https://github.com/vyperlang/vyper/commit/0bb7203b584e771b23536ba065a6efda457161bbPatchnvd
- https://github.com/vyperlang/vyper/security/advisories/GHSA-mgv8-gggw-mrg6ExploitVendor Advisorynvd
Attackers weaponise vulnerabilities like this against internet-exposed services. See what is exposed on your perimeter with a free passive scan.
Free scan