Snyk has a proof-of-concept or detailed explanation of how to exploit this vulnerability.
The probability is the direct output of the EPSS model, and conveys an overall sense of the threat of exploitation in the wild. The percentile measures the EPSS probability relative to all known EPSS scores. Note: This data is updated daily, relying on the latest available EPSS model version. Check out the EPSS documentation for more details.
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 applicationsUpgrade vyper
to version 0.4.2 or higher.
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