Skip to content
OpenAdvisories
Medium · 5.9 CVE-2026-114117 EUVD-2026-106920GHSA-xvvp-6q7c-mxwj

Vyper 0.3.8 through 0.5.0b1 Optimizer Miscompilation of msg.value | K in Ternary Branches

Published Oct 21, 2026 · Updated Oct 21, 2026 · Assigned by VulnCheck

Description

Vyper 0.3.8 through 0.5.0b1 contains an optimizer miscompilation in which (msg.value | K) or (len(msg.data) | K), where K is any nonzero integer literal, is compiled to the constant 1 when used as a ternary expression branch under -O gas (the default) or -O codesize. Affected contracts use the wrong value in storage writes, arithmetic, indexes, return values, or events without warning or revert, which can record deposits incorrectly and lock funds.

Affected products

VendorProductAffectedFixed
vyperlang vyper 0.3.8 – ≤ 0.5.0b1 —

References