Insufficient Control Flow Management Affecting vyper package, versions [0,]


Severity

Recommended
0.0
medium
0
10

CVSS assessment by Snyk's Security Team. Learn more

Threat Intelligence

Exploit Maturity
Proof of Concept
EPSS
0.06% (18th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-PYTHON-VYPER-10183409
  • published20 May 2025
  • disclosed16 May 2025
  • creditUnknown

Introduced: 16 May 2025

NewCVE-2025-47774  (opens in a new tab)
CWE-691  (opens in a new tab)

How to fix?

A fix was pushed into the master branch but not yet published.

Overview

vyper is a Pythonic Smart Contract Language for the EVM.

Affected versions of this package are vulnerable to Insufficient Control Flow Management through the slice function. An attacker can bypass the evaluation of side effects in the start argument when the length argument is set to 0, and the source bytestring is a builtin msg.data or <address>.code.

PoC

counter: public(uint256)

@external
def test() -> Bytes[10]:
    b: Bytes[10] = slice(msg.data, self.side_effect(), 0)
    return b

def side_effect() -> uint256:
    self.counter += 1
    return 0

CVSS Base Scores

version 4.0
version 3.1