CVE-2021-48018
Published:October 21, 2026
Updated:October 21, 2026
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.
Affected Packages
https://github.com/vyperlang/vyper.git (GITHUB):
Affected version(s) >=v0.2.13 <v0.2.15Fix Suggestion:
Update to version v0.2.15vyper (PYTHON):
Affected version(s) >=0.2.13 <0.2.15Fix Suggestion:
Update to version 0.2.15Related Resources (2)
Do you need more information?
Contact UsCVSS v4
Base Score:
8.3
Attack Vector
NETWORK
Attack Complexity
LOW
Attack Requirements
PRESENT
Privileges Required
NONE
User Interaction
NONE
Vulnerable System Confidentiality
NONE
Vulnerable System Integrity
HIGH
Vulnerable System Availability
HIGH
Subsequent System Confidentiality
NONE
Subsequent System Integrity
NONE
Subsequent System Availability
NONE
CVSS v3
Base Score:
7.4
Attack Vector
NETWORK
Attack Complexity
HIGH
Privileges Required
NONE
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
HIGH
Availability
HIGH
Weakness Type (CWE)
Out-of-bounds Write
EPSS
Base Score:
0.32