CVE Catalog

CVE-2026-114117

MediumCVSS 5.9
Published: Translated: NVD NIST

Summary

Vyper 0.3.8 through 0.5.0b1 contains an optimizer miscompilation where (msg.value | K) or (len(msg.data) | K) with nonzero K compiles to constant 1 in a ternary branch under -O gas or -O codesize. Affected contracts use the wrong value without warning.

Risk Assessment

This can cause incorrect deposit recording, faulty calculations, and locked funds in contracts. Users may suffer financial losses.

Recommendation

Update Vyper to a version with the optimizer fix. Review and recompile contracts affected by this bug.

Other vulnerabilities in Vyper

See all
Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS