Users might be unable to transfer/ harvest their plots due to gas griefing
When a plot is harvested
or transferred, its index
is removed from the user's plotIndexes
. The problem is that the way this is done is by looping through all indexes until the correct one is found.
This allows for an attacker to spam a wallet with 1 amount plots so the user's plotIndexes
array becomes too long. Then, if the user buys/ sows plots which they later plan on harvestting/selling, they'll have to loop through everything. Given that Beanstalk currently is deployed on ETH mainnet, this could be a unprofitable operation due to high gas costs. In some extreme scenario, it might even be impossible to execute the tx due to gas limit.
Gas griefing
Manual review
Sort the plotIndexes
upon transfer. This would make transfers a tiny bit more costly but would make this attack impossible. In practice, difference would be negligible
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.