What’s Vulnerable › Vulnerabilities
CVE-2024-24559: Vyper SHA3 code generation bug
- Severity: medium (CVSS 5.3 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 0.3% probability of exploitation in the next 30 days
- Public exploit or detection template: none known
- Published: 2024-02-05 · updated 2026-06-17
- Weakness: CWE-327
Description
Vyper is a Pythonic Smart Contract Language for the EVM. There is an error in the stack management when compiling the `IR` for `sha3_64`. Concretely, the `height` variable is miscalculated. The vulnerability can't be triggered without writing the `IR` by hand (that is, it cannot be triggered from regular vyper code). `sha3_64` is used for retrieval in mappings. No flow that would cache the `key` was found so the issue shouldn't be possible to trigger when compiling the compiler-generated `IR`. This issue isn't triggered during normal compilation of vyper code so the impact is low. At the time of publication there is no patch available.
Affected products
- vyperlang vyper: through 0.3.10
References
- https://github.com/vyperlang/vyper/blob/c150fc49ee9375a930d177044559b83cb95f7963/vyper/ir/compile_ir.py#L585-L586
- https://github.com/vyperlang/vyper/security/advisories/GHSA-6845-xw22-ffxv
- https://github.com/vyperlang/vyper/blob/c150fc49ee9375a930d177044559b83cb95f7963/vyper/ir/compile_ir.py#L585-L586
- https://github.com/vyperlang/vyper/security/advisories/GHSA-6845-xw22-ffxv
Get alerted when CVE-2024-24559 or the next vulnerability affects your stack