CVE-2023-39363

Summary

CVECVE-2023-39363
StatePUBLIC
Assigner[email protected]
Source PriorityCVE Program / NVD first with legacy fallback
Published2023-08-07 19:15:00 UTC
Updated2023-09-18 21:15:00 UTC
DescriptionVyper 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)

TypeVendorProductVersionUpdateEditionLanguage
Application Vyperlang Vyper 0.2.15 All All All
Application Vyperlang Vyper 0.2.16 All All All
Application Vyperlang Vyper 0.3.0 All All All

References

ReferenceSourceLinkTags
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

Legacy QID Mappings

  • 994800 Python (Pip) Security Update for vyper (GHSA-5824-cm3x-3c38)
© CVE.report 2026 |

Use of this information constitutes acceptance for use in an AS IS condition. There are NO warranties, implied or otherwise, with regard to this information or its use. Any use of this information is at the user's risk. It is the responsibility of user to evaluate the accuracy, completeness or usefulness of any information, opinion, advice or other content. EACH USER WILL BE SOLELY RESPONSIBLE FOR ANY consequences of his or her direct or indirect use of this web site. ALL WARRANTIES OF ANY KIND ARE EXPRESSLY DISCLAIMED. This site will NOT BE LIABLE FOR ANY DIRECT, INDIRECT or any other kind of loss.

CVE, CWE, and OVAL are registred trademarks of The MITRE Corporation and the authoritative source of CVE content is MITRE's CVE web site. This site includes MITRE data granted under the following license.

Free CVE JSON API cve.report/api

CVE.report and Source URL Uptime Status status.cve.report