Description
Vyper 0.3.8 through 0.5.0b1 contains a compiler miscompilation vulnerability in parse_IfExp that reads nested arrays with narrower inner bounds using the wider result type's memory layout. When a ternary selects the narrower array, inner arrays after the first are read at wrong offsets, causing contracts to silently store corrupted values or revert.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| vyperlang | vyper | 0.3.8 – ≤ 0.5.0b1 | — |
References
- GitHub Security Advisory (GHSA-cw3h-xwxq-8cx2) vendor-advisory
- Patch Commit patch
- VulnCheck Advisory: Vyper 0.3.8 through 0.5.0b1 Memory Misread via Ternary Nested Array Selection third-party-advisory