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.