Vulnerability · Published Feb 5, 2024 · Assigned by GitHub_M

CVE-2024-24559Vyper SHA3 code generation bug

Low 3.7

In plain English

A low-severity broken cryptography in vyper from vyperlang. Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 0.3% (higher than 17% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)3.7Low
Exploit odds (30 days)0.3%top 82.8% of all CVEs
Exploited in the wildNo reportsCISA SSVC: poc
Attack toolingNoneno public tooling known

Official 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 packages & fixed versions

EcosystemPackageFixed inAdvisory
PyPIvyper0.4.0GHSA-6845-xw22-ffxv
PyPIvyper0.4.0b1PYSEC-2024-147

Affected products (as reported)

VendorProductVersions
vyperlang vyper <= 0.3.10

Weakness: CWE-327 · Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N

References