CVE-2023-42441
published 2023-09-18CVE-2023-42441: 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…
PriorityP425medium5.3CVSS 3.1
AVNACLPRNUINSUCNILAN
EPSS
0.42%
34.2th percentile
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 `@nonreentrant('')` do not produce reentrancy checks at runtime. This issue is fixed in version 0.3.10. As a workaround, ensure the lock name is a non-empty string.
Affected
4 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| vyperlang | vyper | — | — |
| vyperlang | vyper | >= 0 < 0b740280c1e3c5528a20d47b29831948ddcc6d83 | 0b740280c1e3c5528a20d47b29831948ddcc6d83 |
| vyperlang | vyper | >= 0.2.9 < 0.3.10 | 0.3.10 |
| vyperlang | vyper | >= 0.2.9 < 0.3.10 | 0.3.10 |
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
OSV
Vyper has incorrect re-entrancy lock when key is empty string
osv·2023-09-18
CVE-2023-42441 [MEDIUM] Vyper has incorrect re-entrancy lock when key is empty string
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?_
GHSA
Vyper has incorrect re-entrancy lock when key is empty string
ghsa·2023-09-18
CVE-2023-42441 [MEDIUM] CWE-667 Vyper has incorrect re-entrancy lock when key is empty string
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?_
OSV
CVE-2023-42441: Vyper is a Pythonic Smart Contract Language for the Ethereum Virtual Machine (EVM)
osv·2023-09-18
CVE-2023-42441 CVE-2023-42441: Vyper is a Pythonic Smart Contract Language for the Ethereum Virtual Machine (EVM)
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 `@nonreentrant('')` do not produce reentrancy checks at runtime. This issue is fixed in version 0.3.10. As a workaround, ensure the lock name is a non-empty string.
No detection rules found.
No public exploits indexed.
No writeups or analysis indexed.
https://github.com/vyperlang/vyper/commit/0b740280c1e3c5528a20d47b29831948ddcc6d83https://github.com/vyperlang/vyper/pull/3605https://github.com/vyperlang/vyper/security/advisories/GHSA-3hg2-r75x-g69mhttps://github.com/vyperlang/vyper/commit/0b740280c1e3c5528a20d47b29831948ddcc6d83https://github.com/vyperlang/vyper/pull/3605https://github.com/vyperlang/vyper/security/advisories/GHSA-3hg2-r75x-g69m
2023-09-18
Published