Storage corruption due to variables overwritten by re-entrancy locks
Description
Reviewed
Aug 2, 2021
Published to the GitHub Advisory Database
Aug 5, 2021
Last updated
Jan 9, 2023
Background
When attempting to use the v0.2.14 release, @pandadefi discovered an issue using the
@nonreentrant
decorator.Impact
Reentrancy protection storage slots get allocated to the same slots as storage variables, leading to the corruption of storage variables when using the
@nonreentrant
decorator.Patches
This issue was fixed in v0.2.15 in #2391, #2379
Workarounds
Don't use the
@nonreentrant
decorator in these versions.References