The following functions in barn/UnripeFacet.sol
are marked as payable even though they only deal with ERC20 tokens and do not use msg.value
in any capacity.
chop
pick
addUnripeToken
addMigratedUnderlying
switchUnderlyingToken
Although I haven't been able to exploit it, any Unripe holder would be able to send untracked ETH into Beanstalk using chop
or pick
which could be a primitive in a longer exploit chain.
Manual Review
Since none of the functions listed are meant to interact with ETH in any capacity, the most sensible action would be to remove the payable
keyword. This would at the very least reduce the domain of possible attack vectors.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.