Skip to main content
← All vulnerabilities
CVE-2024-24559GHSA-6845-XW22-FFXVPYSEC-2024-147

Vyper SHA3 code generation bug

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

Summary

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.

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.0

  • vyperPyPI

    fixed in 0.4.0b1

References 2

GitHub · vyperlang/vyper