What’s Vulnerable › Vulnerabilities
CVE-2024-24567: raw_call `value=` kwargs not disabled for static and delegate calls
- Severity: medium (CVSS 5.3 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 0.5% probability of exploitation in the next 30 days
- Public exploit or detection template: yes
- Published: 2024-01-30 · updated 2026-06-17
- Weakness: CWE-754
Description
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.
Affected products
- vyperlang vyper: through 0.3.10
References
- https://github.com/vyperlang/vyper/blob/9136169468f317a53b4e7448389aa315f90b95ba/vyper/builtins/functions.py#L1100
- https://github.com/vyperlang/vyper/security/advisories/GHSA-x2c2-q32w-4w6m
- https://github.com/vyperlang/vyper/blob/9136169468f317a53b4e7448389aa315f90b95ba/vyper/builtins/functions.py#L1100
- https://github.com/vyperlang/vyper/security/advisories/GHSA-x2c2-q32w-4w6m
Get alerted when CVE-2024-24567 or the next vulnerability affects your stack