CVE-2024-24559
published 2024-02-05CVE-2024-24559: 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…
PriorityP427medium5.3CVSS 3.1
AVNACLPRNUINSUCLINAN
EPSS
0.26%
16.9th percentile
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
3 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| vyperlang | vyper | <= 0.3.10 | — |
| vyperlang | vyper | >= 0 < 0.4.0b1 | 0.4.0b1 |
| vyperlang | vyper | >= 0 < 0.4.0 | 0.4.0 |
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
OSV
CVE-2024-24559: Vyper is a Pythonic Smart Contract Language for the EVM
osv·2024-02-05
CVE-2024-24559 CVE-2024-24559: Vyper is a Pythonic Smart Contract Language for the EVM
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.
OSV
Vyper sha3 codegen bug
osv·2024-02-05
CVE-2024-24559 [LOW] Vyper sha3 codegen bug
Vyper sha3 codegen bug
### Summary
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, it can only be triggered by using the `fang` binary directly (this binary used to be called `vyper-ir` prior to v0.3.4).
### Details
To compile `sha3_64`, the `arg[0]` and `arg[1]` have to be compiled:
https://github.com/vyperlang/vyper/blob/c150fc49ee9375a930d177044559b83cb95f7963/vyper/ir/compile_ir.py#L585-L586
As can be seen, after compiling the 0th arg, the `height` variable isn't increased. If new `withargs` are defined in the inner scope, they are manipulated correctly, because both their
GHSA
Vyper sha3 codegen bug
ghsa·2024-02-05
CVE-2024-24559 [LOW] CWE-327 Vyper sha3 codegen bug
Vyper sha3 codegen bug
### Summary
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, it can only be triggered by using the `fang` binary directly (this binary used to be called `vyper-ir` prior to v0.3.4).
### Details
To compile `sha3_64`, the `arg[0]` and `arg[1]` have to be compiled:
https://github.com/vyperlang/vyper/blob/c150fc49ee9375a930d177044559b83cb95f7963/vyper/ir/compile_ir.py#L585-L586
As can be seen, after compiling the 0th arg, the `height` variable isn't increased. If new `withargs` are defined in the inner scope, they are manipulated correctly, because both their
No detection rules found.
No public exploits indexed.
No writeups or analysis indexed.
https://github.com/vyperlang/vyper/blob/c150fc49ee9375a930d177044559b83cb95f7963/vyper/ir/compile_ir.py#L585-L586https://github.com/vyperlang/vyper/security/advisories/GHSA-6845-xw22-ffxvhttps://github.com/vyperlang/vyper/blob/c150fc49ee9375a930d177044559b83cb95f7963/vyper/ir/compile_ir.py#L585-L586https://github.com/vyperlang/vyper/security/advisories/GHSA-6845-xw22-ffxv
2024-02-05
Published