Snyk has a proof-of-concept or detailed explanation of how to exploit this vulnerability.
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 applicationsA fix was pushed into the master
branch but not yet published.
vyper is a Pythonic Smart Contract Language for the EVM.
Affected versions of this package are vulnerable to Insufficient Control Flow Management through optimization in the concat
function. An attacker can skip evaluation of side effects when the length of an argument provided to the function is zero.
Note: This is only exploitable if unusual user-code patterns are used, such as constructing zero-length bytestrings with side effects using the ternary operator introduced in v0.3.8.
counter: public(uint256)
@external
def test() -> Bytes[256]:
a: Bytes[256] = concat(b"" if self.sideeffect() else b"", b"aaaa")
return a
def sideeffect() -> bool:
self.counter += 1
return True