Skip to main content
← All vulnerabilities
CVE-2024-24567PYSEC-2024-151GHSA-X2C2-Q32W-4W6M

raw_call `value=` kwargs not disabled for static and delegate calls

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 0.4.0b1, 0.4.0
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: poc
  • Automatable: no
  • Technical impact: partial

Summary

Vyper is a pythonic Smart Contract Language for the ethereum virtual machine. Vyper compiler allows passing a value in builtin raw_call even if the call is a delegatecall or a staticcall. But in the context of delegatecall and staticcall the handling of value is not possible due to the semantics of the respective opcodes, and vyper will silently ignore the value= argument. If the semantics of the EVM are unknown to the developer, he could suspect that by specifying the `value` kwarg, exactly the given amount will be sent along to the target. This vulnerability affects 0.3.10 and earlier versions.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: poc · Automatable: no · Technical impact: partial

  3. Record last updated

Affected versions

  • vyperlang vyper

    through 0.3.10

  • vyperPyPI

    fixed in 0.4.0b1

  • vyperPyPI

    fixed in 0.4.0

References 2

GitHub · vyperlang/vyper