CVE-2023-32675

Nonpayable default functions are sometimes payable in vyper

State
Published
Severity
3.7 Low
Published
May 19, 2023
Updated
Feb 12, 2025
Reserved
May 11, 2023

Read the record on cve.org

Description

Vyper is a pythonic Smart Contract Language for the ethereum virtual machine. In contracts with more than one regular nonpayable function, it is possible to send funds to the default function, even if the default function is marked `nonpayable`. This applies to contracts compiled with vyper versions prior to 0.3.8. This issue was fixed by the removal of the global `calldatasize` check in commit `02339dfda`. Users are advised to upgrade to version 0.3.8. Users unable to upgrade should avoid use of nonpayable default functions.

Scores

CVSSScoreVectorSource
3.13.7 LowCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:NGitHub_M

Weaknesses

  • CWE-670 Always-Incorrect Control Flow Implementation

Affected Products

ProductVersions
vypervyperlang
  • < 0.3.8Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.