Vyper has incorrect re-entrancy lock when key is empty string
### Impact Locks of the type `@nonreentrant("")` or `@nonreentrant('')` do not produce reentrancy checks at runtime. ```Vyper @nonreentrant("") # unprotected @external def bar(): pass @nonreentrant("lock") # protected @external def foo(): pass ``` ### Patches Patched in #3605 ### Workarounds The lock name should be a non-empty string. ### References _Are there any links users can visit to find out more?_
01
describes (1)
Related CVEs.
| ID | severity | exploitable | ||
|---|---|---|---|---|
| CVE-2023-42441US | medium5.3 | — | ||
Vyper is a Pythonic Smart Contract Language for the Ethereum Virtual Machine (EVM). Starting in version 0.2.9 and prior to version 0.3.10, locks of the type `@nonreentrant("")` or… | ||||
02
references
External citations — patches, advisories, analysis.
- https://github.com/pypa/advisory-database/tree/main/vulns/vyper/PYSEC-2023-305.yamlWEB
- https://github.com/vyperlang/vyperPACKAGE
- https://github.com/vyperlang/vyper/commit/0b740280c1e3c5528a20d47b29831948ddcc6d83WEB
- https://github.com/vyperlang/vyper/pull/3605WEB
- https://github.com/vyperlang/vyper/security/advisories/GHSA-3hg2-r75x-g69mWEB
- https://nvd.nist.gov/vuln/detail/CVE-2023-42441ADVISORY
scry
Advisories like this name the exposed products attackers go after on your perimeter. See what is exposed on your perimeter with a free passive scan.
Free scan