CVE-2021-48018GHSA-7f92-rr6w-cq64
Vyper 0.2.13 before 0.2.15 Storage Corruption via @nonreentrant Decorator
vyperlang vyperPyPILibraries & packages
CVSS
8.3HighExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.32%Chance of exploitation activity in the next 30 days, higher than 23% of CVEs. Scored 23 Oct 2026FIRST EPSS
What fixes it
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
Vyper from 0.2.13 before 0.2.15 allocates storage slots for @nonreentrant reentrancy locks at the same locations as contract storage variables. When a function using @nonreentrant is called, setting the lock overwrites the overlapping storage variable, corrupting contract state and breaking the contract's intended logic.
Text from CVE List
Affected versions 5
- vyperaffected: 0.2.13 before 0.2.15CVE List
- vyperunaffected: 0.2.15CVE List
- vyper, PyPIfrom 0.2.13, fixed in 0.2.15OSV
- vyper, PyPI0.2.13OSV
- vyper, PyPI0.2.14OSV