CVE-2023-39363
Summary
| CVE | CVE-2023-39363 |
|---|---|
| State | PUBLIC |
| Assigner | [email protected] |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2023-08-07 19:15:00 UTC |
| Updated | 2023-09-18 21:15:00 UTC |
| Description | Vyper is a Pythonic Smart Contract Language for the Ethereum Virtual Machine (EVM). In versions 0.2.15, 0.2.16 and 0.3.0, named re-entrancy locks are allocated incorrectly. Each function using a named re-entrancy lock gets a unique lock regardless of the key, allowing cross-function re-entrancy in contracts compiled with the susceptible versions. A specific set of conditions is required to result in misbehavior of affected contracts, specifically: a `.vy` contract compiled with `vyper` versions `0.2.15`, `0.2.16`, or `0.3.0`; a primary function that utilizes the `@nonreentrant` decorator with a specific `key` and does not strictly follow the check-effects-interaction pattern (i.e. contains an external call to an untrusted party before storage updates); and a secondary function that utilizes the same `key` and would be affected by the improper state caused by the primary function. Version 0.3.1 contains a fix for this issue. |
Risk And Classification
Problem Types: CWE-863
NVD Known Affected Configurations (CPE 2.3)
References
| Reference | Source | Link | Tags |
|---|---|---|---|
| Vyper Nonreentrancy Lock Vulnerability Technical Post-Mortem Report - HackMD | MISC | hackmd.io | |
| Curve Pool Reentrancy Exploit Postmortem July 30th, 2023 - HackMD | MISC | hackmd.io | |
| fix codegen failure with nonreentrant keys by charles-cooper · Pull Request #2514 · vyperlang/vyper · GitHub | MISC | github.com | |
| Incorrectly allocated named re-entrancy locks · Advisory · vyperlang/vyper · GitHub | MISC | github.com | |
| Fix unused storage slots by charles-cooper · Pull Request #2439 · vyperlang/vyper · GitHub | MISC | github.com | |
| CVE Program record | CVE.ORG | www.cve.org | canonical |
| NVD vulnerability detail | NVD | nvd.nist.gov | canonical, analysis |
No vendor comments have been submitted for this CVE.
Legacy QID Mappings
- 994800 Python (Pip) Security Update for vyper (GHSA-5824-cm3x-3c38)