Advisories

Vyper through 0.5.0b1 Literal Value Manipulation via Line Separators

Go back
Severity
medium
Date
Affecting
  • vyper >= 0.1.0b1, < 0.1.0b17

  • vyper >= 0.4.1, <= 0.5.0b1

CWE
  • CWE-436 Interpretation Conflict
CVSS
6.0
CVSS V4 Vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
Credit
DELENE-TCHIO-ROMUALD
Description
Vyper 0.1.0b1 before 0.1.0b17 and 0.4.1 through 0.5.0b1 builds its source-line table with str.splitlines(), which treats characters like form feed and U+2028 as line breaks the Python parser ignores, so numeric literals are classified and validated from shifted source text. An attacker contributing source code can hide these characters in comments, strings or indentation to silently change address, integer or decimal constants.

Ready to get Started?

Explore VulnCheck, a next-generation Cyber Threat Intelligence platform, which provides exploit and vulnerability intelligence to help you prioritize and remediate vulnerabilities that matter.
  • Vulnerability Prioritization
    Prioritize vulnerabilities that matter based on the threat landscape and defer vulnerabilities that don't.
  • Early Warning System
    Real-time alerting of changes in the vulnerability landscape so that you can take action before the attacks start.