CVE-2021-48018: Vyper 0.2.13 before 0.2.15 Storage Corruption via @nonreentrant Decorator

Published Oct 21, 2026
·
Updated

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 Software

1 affected component
Vyper Vyper>=0.2.13<0.2.15

Event History

Oct 21, 2026
CVE Published
via MITRE·12:36 AM
Data Sourced
via MITRE·12:36 AM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Which contracts are exposed to this issue?

Contracts compiled with Vyper versions from 0.2.13 through versions before 0.2.15 are affected when they use the @nonreentrant decorator and have contract storage variables that overlap the lock's allocated storage slot.

2

What must happen for the contract state to be corrupted?

A function that uses @nonreentrant must be called. Setting its reentrancy lock can overwrite the overlapping storage variable, changing contract state and potentially breaking the intended contract logic.

3

Is an attacker required to have credentials or user interaction to trigger the issue?

No. The supplied vector indicates network access, no privileges, and no user interaction, although exploitation is rated as requiring high attack complexity.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203