CVE-2024-24560

    Dashboard / Vulnerabilities / CVE-2024-24560

    CVE-2024-24560

    Published: 2 Feb 2024Last Modified: 28 Oct 2026

    Summary: Vyper external calls can overflow return data to return input buffer

    Details: Vyper is a Pythonic Smart Contract Language for the Ethereum Virtual Machine. When calls to external contracts are made, we write the input buffer starting at byte 28, and allocate the return buffer to start at byte 0 (overlapping with the input buffer). When checking RETURNDATASIZE for dynamic types, the size is compared only to the minimum allowed size for that type, and not to the returned value's length. As a result, malformed return data can cause the contract to mistake data from the input buffer for returndata. When the called contract returns invalid ABIv2 encoded data, the calling contract can read different invalid data (from the dirty buffer) than the called contract returned.

    Affected packages

    Package

    Name:

    Purl:

    Affected ranges

    Type: GIT

    Events:

    Introduced- 0
    Fixed -None

    Affected versions

    v0.3.10
    v0.3.10rc5
    v0.3.10rc4
    v0.3.10rc3
    v0.3.10rc2
    v0.3.10rc1
    v0.3.9
    v0.3.8
    v0.3.7
    v0.3.6
    v0.3.5
    v0.3.4
    v0.3.3
    v0.3.2
    v0.3.1
    v0.3.0

    Common Vulnerability Scoring System

    Attack Vector
    Network
    Adjacent
    Local
    Physical
    Privileges Required
    None
    Low
    High
    User Interaction
    None
    Required
    Scope
    Unchanged
    Changed
    Confidentiality
    None
    Low
    High
    Integrity
    None
    Low
    High
    Availability
    None
    Low
    High
    CVE-2024-24560 | CVE-DB